Python各种下划线的含义,熟悉又陌生的东西!

点击上方Python3X”,选择“置顶或者星标

第一时间收到精彩推送!



单下划线和双下划线在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示 - 而有一些含义是由Python解释器严格执行的。



单前导下划线 _var     当涉及到变量和方法名称时,单个下划线前缀有一个约定俗成的含义。它是对程序员的一个提示 - 意味着Python社区一致认为它应该是什么意思,但程序的行为不受影响。下划线前缀的含义是告知其他程序员:以单个下划线开头的变量或方法仅供内部使用。该约定在PEP 8中有定义。



单末尾下划线 var_

    有时候,一个变量的最合适的名称已经被一个关键字所占用。因此,像class或def这样的名称不能用作Python中的变量名称。在这种情况下,你可以附加一个下划线来解决命名冲突。


双前导下划线 __var     双下划线前缀会导致Python解释器重写属性名称,以避免子类中的命名冲突。 这也叫做名称修饰(name mangling) - 解释器更改变量的名称,以便在类被扩展的时候不容易产生冲突。



双前和双末尾下划线 _var_

    也许令人惊讶的是,如果一个名字同时以双下划线开始和结束,则不会应用名称修饰。由双下划线前缀和后缀包围的变量不会被Python解释器修改。但是,Python保留了有双前导和双末尾下划线的名称,用于特殊用途。这样的例子有,__init__对象构造函数,或__call__ --- 它使得一个对象可以被调用。这些dunder方法通常被称为神奇方法 - 但Python社区中的许多人都不喜欢这种方法。最好避免在自己的程序中使用以双下划线(“dunders”)开头和结尾的名称,以避免与将来Python语言的变化产生冲突。



单下划线 _

    按照习惯,有时候单个独立下划线是用作一个名字,来表示某个变量是临时的或无关紧要的。你也可以在拆分(unpacking)表达式中将单个下划线用作“不关心的”变量,以忽略特定的值。同样,这个含义只是“依照约定”,并不会在Python解释器中触发特殊的行为。单个下划线仅仅是一个有效的变量名称,会有这个用途而已。



640?



感谢您的阅读


640?wx_fmt=gif




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值