私有属性

发布于 更新于
本文目录
  1. 一、私有属性定义
  2. 二、私有属性访问

技术文章测试开发

前言:上两篇文章我们讲了类属性和实例属性,想必大家都学会了,接下来我们来看一下私有属性,希望这篇博客对大家有帮助。

前言:上两篇文章我们讲了类属性和实例属性,想必大家都学会了,接下来我们来看一下私有属性,希望这篇博客对大家有帮助。

一、私有属性定义

class Dog:
    __age = 20 #类私有属性
    def __init__(self):
        self.__name = "老王" #实例私有属性

二、私有属性访问

  1. ##### 类内部访问私有属性【可以访问】

     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
  2. ##### 类外部访问私有属性【不能访问】

     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'
    
     结论:类外部不能访问私有属性(类私有属性、实例私有属性)
  3. ##### 类外面强行访问私有属性

     class Dog:
         __age = 20
         def __init__(self):
             self.__name = "老王"
    
     if __name__ == '__main__':
         cl = Dog()
         print(Dog._Dog__age) # 类强行访问类属性
         print(cl._Dog__name)# 实例强行访问实例属性
     输出:
     20
     老王
    
     结论:私有属性在类外面不可访问也不是绝对的,虽然可以强制访问,但是不推荐使用

来源:testingpai

继续阅读