并不是所有的属性都可以被外部访问的,这种不能被外部访问的属性称为私有属性。私有属性是以双下划线'__'开头的属性。
# 类私有属性 class Animal(object): __localtion = 'Asia' print(Animal.__localtion) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: type object 'Animal' has no attribute '__localtion'
# 实例私有属性 class Animal(object): def __init__(self, name, age, localtion): self.name = name self.age = age self.__localtion = localtion dog = Animal('wangwang', 1, 'GuangDong') print(dog.name) # ==> wangwang print(dog.age) # ==> 1 print(dog.__localtion) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Animal' object has no attribute '__localtion'
在外部访问私有属性将会抛出异常,提示没有这个属性。
虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。私有属性是为了保护类或实例属性不被外部污染而设计的。
请给Animal类的__init__方法中添加name和age参数,并把age绑定到__age属性上,看看外部是否能访问到。
参考答案:
class Animal(object): def __init__(self, name, age): self.name = name self.__age = age cat = Animal('Kitty', '3') print(cat.name) print(cat.__age)
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报