下边代码中在使用构造方法中定义了self.__age = 1
,这个构造方法在创建对象时给对象进行初始化。
(1)既然使用了self.__age
说明是利用self
给对象赋值了__age
,self
的含义是什么?是不是代表为对象添加属性?
(2)这里可不可以理解成用self.__age = 1
为对象
添加了一个对象
的私有属性?而不是类的私有属性?
(3)为何对象无法直接访问__age
,那么双下划线对属性的定义是不是绝对的?就是只要是双下划线就是类的私有属性,不管它在什么地方被定义都是类的私有属性。
class Person:
def __init__(self, name):
self.name = name # 名称
self.__age = 1 # 年龄,私有属性,默认1岁
def set_age(self, new_age):
if 0 < new_age <= 120: # 判断年龄是否合法
self.__age = new_age
# 设置获取私有属性的方法
def get_age(self):
return self.__age
chinese = Person('小明')
print(chinese.__age)