python 私有化

本文介绍了Python中的私有化特性,包括单下划线_x和双下划线__xx的使用规则。_x标识的属性和方法在类内部可访问,但不推荐在模块导入时使用。而__xx(经过名字重整)的属性在外部无法直接访问,主要防止子类意外重写。私有类仅在模块内部可用,from...import *时不导入。了解这些机制有助于更好地理解和控制类的封装。
摘要由CSDN通过智能技术生成

私有化

_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问
__xx:前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)

通过name mangling(名字重整(目的就是以防子类意外重写基类的方法或者属性)如:_Class__object)机制就可以访问private了

_x:私有类

# 模块内可以访问,当from cur_module import *时,不导入私有类
class _Bug(object):
    @staticmethod
    def showbug():
        print("showbug")

总结:
父类中属性名为__名字的,子类不继承,子类不能访问
如果在子类中向__名字赋值,那么会在子类中定义的一个与父类相同名字的属性
_名的变量、函数、类在使用from xxx import *时都不会被导入

引用自:【python提高高级day03】私有化
https://blog.nowcoder.net/n/76b4cb047ef14afe92e1b5c4755220cf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值