bart.__name 报错
Topic sourceclass Student(object): def init(self,name,score): self.name=name self.score=score def print_score(self): print('%s:%d' %(self.name,self.score)) def get_name(self): return self.name def get_score(self): return self.score
bart=Student('Bart Smipson',96) print(bart.name) print(bart.get_name())
忘说了,init初始化的下划线别忘了。 %s代表字符串 score不是字符串 用%d
name是一个私有变量,你是不能从外部就这么直接访问的。Python解释器对外把name变量改成了_Studentname,如果你想访问的话,就要用bart._Studentname, 但是廖老师说了,不同版本的解释器会把name改成不一样的变量名,所以bart._Studentname也不是保险用法。你最好在类内部定义一个函数,可以获取变量的值。 如:
在此插入代码
def get_name(self): return self.__name
- 1
儒雅的大圈
交互环境下:
class Student(object): def init(self,name,score): self.name=name self.score=score def print_score(self): print('%s:%s' %(self.name,self.score)) def get_name(self): return self.name def get_score(self): return self.score
bart=Student('Bart Smipson',96)
bart.__name
AttributeError Traceback (most recent call last)
<ipython-input-17-b54cbc8ec6d2> in <module>() ----> 1 bart.__name
AttributeError: 'Student' object has no attribute '__name'
请问老师和各位道友,这个为什么会报错呢?