文档章节

一道 Python 类的笔试题详解

MtrS
 MtrS
发布于 2014/11/07 13:20
字数 291
阅读 218
收藏 12

<!-- lang: python -->

 r = {} 
class C(object):
   def __init__(self, a, b):
        self.a = a
        self.b = b
        if b == 'a':
            orig = super(C, cls)
            r[cls.instance] = 1

a = C(1, 'a')
b = C(1, 'a')
c = C(1, 'b')
l = [a, b, c] 
for i in l:
if i not in r:
    r[i] = 1  
else:
    r[i] += 1

assert r[a] == 2
assert r[b] == 2 
assert r[c] == 1 

原题目要求如下: 修改 C 类, 使得下面的 断言成立:

要想使下面的断言成立,既需要满足 item in r , 而 a 和 b 同属于 C 类, 且参数一致, a 初次赋值 给 r 字典的时候, r[a] = 1, b 赋值给 r 字典的时候 更改 使得 r[b] = r[a] + 1 此时 r[a] = r[b] =2 即满足 题目要求, 要使得 r[b] = r[a] + 1 此时需要 hash(a) == hash(b) , 在类里面满足 hash(self) , 使得 a,b 哈西值一致。

另外需要满足的时 给 r[b] 赋值时, 字典自身检测到 字典已经包含该 键, 类 需要满足一个方法 eq(self, other): 使得 a == b

最后个人的解决方法:

<!-- lang: python -->

class C(object):

def __init__(self, a, b):
    self.a = a
    self.b = b

def __eq__(self, other):
    return self.a == other.a and self.b== other.b

def __hash__(self):
    return self.a

© 著作权归作者所有

共有 人打赏支持
MtrS
粉丝 30
博文 549
码字总数 352132
作品 0
榆林
关于腾讯的一道字符串匹配的面试题

Question: 假设两个字符串中所含有的字符和个数都相同我们就叫这两个字符串匹配, 比如:abcda和adabc,由于出现的字符个数都是相同,只是顺序不同, 所以这两个字符串是匹配的。要求高效! ...

大数据之路
2012/09/16
0
2
在 GitHub 上收获 6519 颗 Star 的 Python 面试题资源,到底有多牛?

整理 | Jane 出品 | AI科技大本营 9 月,正值 2019 秋季招聘热季,最近身边很多小伙伴都是在笔试、面试中艰难生存着,结果却也是喜忧参半。每一年的情形都在变化,但不变的是竞争在增加,难度...

CSDN资讯
09/24
0
0
面试大法——算法、Python、机器学习等笔试面经资源 | 干货收藏

整理 | Jane 出品 | AI科技大本营 【导读】9 月,正值 2019 秋季招聘热季,最近身边很多小伙伴都是在笔试、面试中艰难生存着,结果却也是喜忧参半。每一年的情形都在变化,但不变的是竞争在增...

AI科技大本营
09/25
0
0
面试大法——算法、Python、机器学习等笔试面经资源|干货收藏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/82836660 整理 | Jane 出品 | AI科技大本营 【导读】9 月,正值 2019 秋季...

AI科技大本营
09/22
0
0
LeetCode Reverse Integer

最近开始刷刷的Leetcode题,遇到了一道这么一个简单的题 Reverse Integer ,然而并没有看上去的那么简单, 特殊的坑就如这道题说的 overflow ! 一开始天真的认为就是每个语言自己定义的最大整数...

L很失败L
2015/06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
11
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部