最赞回答 / digbigwu
<...code...>这是我在学习类的封装的时候写的代码,你看一下,这里不是说不能按照你这样设计成self.score = score,而是因为将score变成了Person类的一个私有属性,__score这是私有属性的表达语法,比如这样写了之后就不能直接print p1.__score来得到分数了,只能通过在类的内部重新定义一个函数来返回分数的值,这也就是类的封装,就是这个道理。
2018-09-27
最新回答 / qq_还能爱你多久_0
self.numbers是类实例的一个属性,如果不定义这个属性,在__str__和__len__这些函数中L是没有办法调用的.只要能实现调用,属性名是什么样的都行,只要你能看懂,可以随便起.self.numbers=L也叫定义属性,说明self.numbers指向了L,就想之前写的代码self.name=name,这个代表self.name指向了类实例时传进来的name参数.这其实都是一样的
2018-09-27
最新回答 / 慕虎5384743
self是谁主要看是调用的谁的cmp方法,Bob和Tim比较,调用的是Bob的cmp方法。调用谁的cmp还要看sorted使用的排序算法是什么,
2018-09-27
最新回答 / 慕仙413142
对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法__cmp__()
2018-09-27
最新回答 / qq_破茧成蝶_8
不好意思,刚才回答错了。你说的f(x)中的这个f,是对要修改函数的一个统一命名,这样不管你要修改的函数是f1、还是x1,或者是c1,都不用每次去改def new_fn(f)
2018-09-26
最赞回答 / 慕姐1034930
任务:1.Person 类增加一个私有属性 __score,表示分数 2.再增加一个实例方法 get_grade()答案 1,self.__score=score 2.def get_grade(self): if self.__score >= 80: return 'A' if self.__score >= 60: return 'B' return 'C'任务是有两个要...
2018-09-24
最赞回答 / 明月丿夜
setattr(self, 属性名, 属性值)第一段给 job 属性赋值 'job',第二段给 job 属性赋值 'Student',执行都会成功不过这时xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')里的 job='Student' 已经不起作用了
2018-09-23
最赞回答 / allen1106
你这个只能叫多重继承,不叫多继承,多继承的意思是一个类同时继承多个类,即可使用A类的功能,也可以使用B类的功能。常用于组合式类,比方说这里的会打篮球的学生,他同时有两个身份,学生和打篮球的人,所以你需要让他继承Student类和Basketball类。你写的没问题是因为他检查答案,是通过匹配你的输出和正确答案,只要输出没问题他就认为是对的
2018-09-23
最赞回答 / w乐w
首先得分清两个概念,一个是逻辑运算符,另一个是逻辑判断语句。if是逻辑判断语句,而and是逻辑运算符。既然是个返回值肯定不能返回一个逻辑判断语句,只能返回boolean值,所以只能and。关于and就是和的意思,只有and的左边和右边同时成立才能返回true,否侧是false。
2018-09-20