最新回答 / 我滴天呐
因为__init__()只有初始化的时候调用,如果初始化的时候(Student('Bob', 59)传入的是59得到C,那没问题如果初始化之后修改分数(s.score = 60),那么这里不会调用__init__(),就无法成为B所以修改分数后再获取成绩(s.grade)时,会重新判断分数得到新的成绩B
2019-09-01
最新回答 / 幸福的小土豆
Company.num += 1 # 应该num和name是局部变量,如果想改的话,使用类属性去改,即Company.num,name同理。 Company.name.append(Company_name)
2019-08-31
已采纳回答 / 慕仰0186287
兄弟,你缩进有问题, __str__在__init__的缩进里,所以编译器把__str__当成在__init__中定义的函数了python对缩进很严格的。。。
2019-08-30
已采纳回答 / 慕哥1930468
我理解的,因为python的对象是可动态扩充属性的,你看一下__slots__这一节:<...图片...>所以如果添加了__slots__语句,就不可扩充属性了,就不会出现你说的问题:<...图片...>
2019-08-28
最新回答 / boyideyt
<...code...>print f() 表示打印f函数的返回值,print f 是打印f函数这个对象。如果出错了就看报错信息。。。个人理解:在已有a函数时,若想在a函数上进行改进,并定义新函数,就可将返回值生成一个新函数。在需要使用时再加()进行使用。另外延迟函数还可以用在多值参数需要进行循环的场合。
2019-08-25
最新回答 / 慕哥6575325
1reversed_cmp函数 理解为对两个数排序(且生成排序好列表---虽然这个函数里没做这个操作,但是要做是不是很容易)2soretd 函数将reversed_cmp 作用的对象从2个数,变成了一个列表3sorted和reversed_cmp之间的联系(接口--指定格式-1 0 1)实际工作流程(推测的):36和5比较生成[36,5]这时候12进来 与列表比较 有可能 从左往右比较 比36小,在36右边,比5大,停止,不往后继续比较也可能 从右往左比较................
2019-08-24