此时的年龄也不是一个新定义的其他变量吧 Σ(°Д°;
已经是新定义的变量了!你试试下面这段代码:
class Women:
def __init__(self, name):
self.name=name
self.__age=18
def print(self):
print(self.name, self.__age)
xiaomei=Women("小美")
d1=dir(xiaomei)
xiaomei.__age=20
print(set(dir(xiaomei))-set(d1))
print(xiaomei.__age)
print(xiaomei._Women__age)
xiaomei.print()
xiaomei._Women__age=16
xiaomei.print()
可以啊,直接创建了一个变量赋值,然后输出值。
私有变量是不能被外部访问的,你那样相当于动态给加了一个不同的属性。见下面的代码:
class Woman(object):
def __init__(self):
self.__age = 18
def force_answer(self):
print(self.__age)
woman = Woman()
woman.__age = 20
print(woman.__age)
woman.force_answer()
输出:
20
18