Python中的下划线

下划线_,是python中常见的特殊标记,其中有的一部分是惯例约定,还有一部分是解释器的特定含义。

 

以单下划线做前缀的名称指定了其为私有的。

在有些from 模块 import*的场景中,下一个使用你代码的人(或你本人)会明白这个名称仅内部使用。

之所以说在import*场景下,是因为导入时,除了以_开头的名称,其它名称都会被导入,可以在当前模块下直接调用被导入的名称(需要注意重复名称)。除此之外,__all__方法只对import*场景有效,他能指定导入被写入的名称,包括以_开头的名称。

如:__all__=["_aa","b" , "c"]

 

双下划线的前缀名称

python解释器会改写以双下划线做前缀的名称,以免与子类中定义的名称产生冲突。同时避免被直接访问,但是解释器只是将名称改写成_class__名称,我们可以通过这种方式直接访问,但是不建议这么做!

class A:
    def __init__(self,a,b):
        self.__a=a
        self.b=b

a=A(1,2)
print(a._A__a)
print(a.b)

>>>1

>>>2

避免与子类名称产生冲突:

class B(A):
    def __init__(self,a):
        self.__a=a
        super(B,self).__init__(1,2)

b=B(3)
print(b._B__a)

>>> 3

前后都带双下划线(__init__)

这些是python的特殊方法名(魔法方法),这仅仅是一种惯例,一种确保Python系统中的名称不会跟用户自定义的名称发生冲突的方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值