前言:上两篇文章我们讲了类属性和实例属性,想必大家都学会了,接下来我们来看一下私有属性,希望这篇博客对大家有帮助。
一、私有属性定义
class Dog:
__age = 20 #类私有属性
def __init__(self):
self.__name = "老王" #实例私有属性
二、私有属性访问
-
类内部访问私有属性【可以访问】
class Dog: __age = 20 def __init__(self): self.__name = "老王" def test_01(self): print("类内部访问实例私有属性__name =",self.__name) print("类内部访问类私有属性__age =",self.__age) if __name__ == '__main__': cl = Dog() cl.test_01() 输出: 类内部访问实例私有属性__name = 老王 类内部访问类私有属性__age = 20
-
类外部访问私有属性【不能访问】
class Dog: __age = 20 def __init__(self): self.__name = "老王" if __name__ == '__main__': cl = Dog() print(cl.__age) #访问类私有属性 print(cl.__name) #访问实例私有属性 输出: Traceback (most recent call last): File "/Usersningmengban/webservices/tttt.py", line 21, in <module> print(cl.__age) AttributeError: 'Dog' object has no attribute '__age' 结论:类外部不能访问私有属性(类私有属性、实例私有属性)
-
类外面强行访问私有属性
class Dog: __age = 20 def __init__(self): self.__name = "老王" if __name__ == '__main__': cl = Dog() print(Dog._Dog__age) # 类强行访问类属性 print(cl._Dog__name)# 实例强行访问实例属性 输出: 20 老王 结论:私有属性在类外面不可访问也不是绝对的,虽然可以强制访问,但是不推荐使用
欢迎来到testingpai.com!
注册 关于