最赞回答 / 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
已采纳回答 / 起伏
第一种是输出的格式化;第二种也可以不过要去掉引号,作为tuple输出.``` def __str__(self): return (self.name,self.gender,self.score)```
2017-08-16
最新回答 / Anhe
首先 %s/%s 表示两个数相除,对应的就是self.p/self.q ,而由gcd函数调用返回的g,是分子self.p和分母self.q的公约数. 这是我的理解,希望对你有帮助。
2017-08-14
已采纳回答 / 梦中楼上月下丶
如果你要g(lst)能接收参数 那你在return g的时候就因该为函数传入一个参数 去掉lst对了是因为lst本来就是calc_prod传入的参数,在整个函数内本来就是可以调用的
2017-08-14
最赞回答 / Ry__
逗号只能用在这种情况中 u1,u2=s1.lower(),s2.lower() #变量与变量之间,功能与功能之间你的错误是用在了两个完整的表达式中间,表达式作为一条完整的语句,其后不能跟逗号,
2017-08-14