80.Python类的私有属性和私有方法( 实现封装 )

私有属性和私有方法 ( 实现封装 )

Python对于类的成员没有严格的访问控制限制, 这与其他面向对象语言有区别; 关于私有属性和私有方法, 有如下要点:

=> 通常我们约定, 两个下划线开头的属性或方法是私有的(private); 其他为公共的(public);

=> 类内部可以访问私有属性(方法);

=> 类外部不能直接访问私有属性(方法);

=> 类外部可以通过 “_类名__私有属性(方法)名”访问私有属性(方法);

注: 方法本质上也是属性, 只不过是可以通过()执行而已; 所以, 此处说的私有属性和共有属性, 也同时讲解了私有方法和共有方法的用法; 如下测试中, 同时也包含了私有方法和公有方法的例子;

 

#测试私有属性,对外是私有的,对内随便用
class Employee:
    __company = "百战成神"
    def __init__(self,name,age):
        self.name = name
        self.__age = age #两个下划线,定义成私有属性 '_Employee__age'
    def __work(self): #私有方法
        print("好好上班")
        print("年龄:{0}".format(self.__age)) #自己调本类私有属性随便调
        print(Employee.__company) #内部调用私有类属性

e = Employee("张三",18)
print(e.name)
print(e._Employee__age) # 类外部可以通过 “_类名__私有属性(方法)名”访问私有属性(方法);
# print(dir(e))
e._Employee__work() #调类的私有方法
print(Employee._Employee__company) #外部调用私有类属性

输出:

D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypro_obj/mypy02.py
张三
18
好好上班
年龄:18
百战成神
百战成神

Process finished with exit code 0

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值