1、现象描述:
将接收property函数的变量名前加__,程序报错,去掉__,代码正常运行。
2、代码片、运行结果、报错内容:
class Person(object):
def init(self):
self.__age = 18
def get_age(self):
return self.__age
def set_age(self, value):
self.__age = value
__age = property(get_age, set_age)
if __name__ == '__main__':
p = Person()
——————————————————————————————————————————
运行结果:
self.__age = value
[Previous line repeated 994 more times]
RecursionError: maximum recursion depth exceeded
3、解决方案:去掉接收property函数的变量名前的__,程序正常:
age = property(get_age, set_age)
请问这是哪块除了问题?
这是python规则。
"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;"双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
所以,明白了吧。请采纳。