最赞回答 / 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
最新回答 / Anhe
首先 %s/%s 表示两个数相除,对应的就是self.p/self.q ,而由gcd函数调用返回的g,是分子self.p和分母self.q的公约数. 这是我的理解,希望对你有帮助。
2017-08-14
最赞回答 / Ry__
逗号只能用在这种情况中 u1,u2=s1.lower(),s2.lower() #变量与变量之间,功能与功能之间你的错误是用在了两个完整的表达式中间,表达式作为一条完整的语句,其后不能跟逗号,
2017-08-14
最新回答 / Sir_Y
class Person(object): __count = 0 def __init__(self, name): Person.__count=Person.__count+1 self.name=name print person.__count , namep1 = Person('Bob')p2 = Person('Alice')print Person.__count请看如上下划线处,若要并排输出,需要加上 ” ,“ 连接不同类型的数据
2017-08-14
最新回答 / jornpen
假设s = 'abCD',for x in s 会分别取出 a, b, C, D第一次迭代时,x[0] 为 a,x[1:]为空,所以 x[0].upper()+x[1:].lower() 就是A,这时没有意义的。正常的方式应该是def format_name(s): return s[0].upper() + s[1:].lower()此处s[0] 为‘a’, s[1:]为‘bCD’,s[0].upper()为 ‘A’, s[1:].lower()为 ‘bcd’ ,最后得到 ‘Abcd’
2017-08-13