最赞回答 / 慕仰5534561
self.k = v 的含义是 v 的内容赋值给变量名k 生成的不是字典而setattr(object, name, values) 给对象的属性赋值,若属性不存在,先创建再赋值。
2017-08-21
已采纳回答 / weibo_咸田两心_0
1、对于sorted()的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。至于加了reversed_cmp函数之后实现倒序是因为和上面的排序定义正好相反2、如果比较的字符串中的首字母一样,就比较下一个字母么
2017-08-21
最赞回答 / weibo_哥哥立正向前走了_0
如上所诉类名调用和super不要混用 ,当用类名调用时——用的是广度算法,super调用C3算法class A(object):passclass B(A):passclass C(B):passclass D(A):passclass E(D):passclass F(C, E):pass按照广度优先遍历,F的MRO序列应该是[F,C,E,B,D,A]但是C3是[F,E,D,C,B,A]
2017-08-19
最赞回答 / Alex罗伊
会打印出None是因为改成print之后get_grade(self)函数的返回值为空,而print p1.get_grade()print p2.get_grade()print p3.get_grade()语句的 意思打印出函数的返回值,所以都是None.你可以get_grade(self)函数最后加个return “abc”测试一下,会发现返回结果中None 就都变成了abc
2017-08-17
最赞回答 / 慕侠1448323
题目写错了:“如果将类属性 count 改为私有属性__count,则外部无法读取__score,但可以通过一个类方法获取,请编写类方法获得__count值。”加粗部分应该是__count。此外,如果属性写在类名下面,就是类属性,如果是写在__init__()内,就是实例属性,你可以这样理解,init传入的self就是实例自己,self.__score当然是实例的属性了,而如果要在init内调用类属性__count,就必须用Person.__count。
2017-08-17
最新回答 / 幕布斯4928452
装饰器是对函数增加一部分语句,但是还是想通过原函数名来执行左右代码。所以装饰器函数的传入参数和返回值本身都是一个函数。这里第三行实际上是调用了fun函数,因为deco函数传进来的参数本身就是一个函数。
2017-08-17
最赞回答 / Brokeninthesublima
建议联系下 递归 与迭代 或许对你有些帮助。装饰器虽重要,但是其他一样 ,不妨学完, 在回头研究,或许回头看,不懂也会有所感悟。个人见解!
2017-08-16