函数命名之下划线


参考链接:https://www.pybloggers.com/2016/02/usage-of-underscores-before-and-after-function-name-in-python/

一、开头有一个下划线

Python没有真正的私有方法,所以在方法或属性开头的下划线意味着你不应该访问这个方法,因为它不是API的一部分。
实例如下

classBaseForm(StrAndUnicode):
    def _get_errors(self):
        "Returns an ErrorDict for the data provided for the form"
        if self._errors isNone:
            self.full_clean()
        return self._errors
errors = property(_get_errors)

_get_errors是一个私有方法,只应该由类或者类的子类调用,而不应该在类的外部调用

二、开头有两个下划线

两个下划线的作用是提醒用户不要重写该函数
实例如下

class A(object):
    def __test(self):
        print"I'm test method in class A"
    def test(self):
        self.__test()

class B(A):
    def __test(self):
        print"I'm test method in class B"
a = A()
print a.test() # Output: I'm test method in class A
b = B()
print b.test()  # Output: I'm test method in class A

正如我们所看到的,b.test()没有像我们所期望的那样调用B.__test()方法。基本上这是__的正确行为。因此,当你创建一个以__开头的方法时,这意味着你不希望任何人重写它,它只能从定义它的类内部访问。

三、开头和结尾各有两个下划线

此类函数为系统定义函数名,命名函数时尽量避免此类命名方式,比如__init__()

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值