python学习 私有化

私有化
xx:公有变量
_x:单前置下划线,私有化属性或方法,from somemodule import * 禁止导入,类对象与子类可以访问
__xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__,不要自己命名这样的函数或方法。

xx_```:单后置下划线,用于避免与python关键字重复。



在python中,无论是属性还是方法只要有前置下划线,就是私有的
当我们调用模块时,如果以`from XXX(模块名) import * `时,该模块的私有方法与私有属性不会被调用,如果调用会报错。
但是,当我们以`import XXX(模块名) ` 调用时,该模块的私有方法可以使用。
这是因为,后者是将模块整体引用,所以会导入私有的属性及方法。

**私有化的实质**,是通过name mangling (名字重整(目的是以防子类意外重写基类的方法或者属性)如:`_类名__私有属性或方法`就可以强制访问private了)
【注】在这里指出,在没必要的时候不要访问私有方法或属性,并且不同的编译器会使用不同的名称,不一定是`_类名__私有属性或方法` 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值