我不明白实例的属性可以变吗
函数__int__定义属性score,可为什么函数里面的代码块又变成了self.__score=score。不应该是self.score=score的吗
函数__int__定义属性score,可为什么函数里面的代码块又变成了self.__score=score。不应该是self.score=score的吗
2018-09-27
class Person(object): def __init__(self, name, score): self.name = name self.__score = score def get_score(self): return self.__score p1 = Person('Bob', 59) print p1.name print p1.get_score()
这是我在学习类的封装的时候写的代码,你看一下,这里不是说不能按照你这样设计成self.score = score,而是因为将score变成了Person类的一个私有属性,__score这是私有属性的表达语法,比如这样写了之后就不能直接print p1.__score来得到分数了,只能通过在类的内部重新定义一个函数来返回分数的值,这也就是类的封装,就是这个道理。
举报