我已经阅读了关于“自我”的 SO 帖子,并且我已经阅读了关于类的Python 文档。我想我了解self
Python 类中的使用以及其中的约定。
但是,对于 Python 及其习语来说相对较新,我无法理解为什么self
在过程类型函数定义中使用一些。例如,在有关整数类型的 Python 文档中,示例函数是:
def bit_length(self):
s = bin(self) # binary representation: bin(-37) --> '-0b100101'
s = s.lstrip('-0b') # remove leading zeros and minus sign
return len(s) # len('100101') --> 6
替换self
为num
是相同的功能结果;IE:
def bit_length(num):
s = bin(num) # binary representation: bin(-37) --> '-0b100101'
s = s.lstrip('-0b') # remove leading zeros and minus sign
return len(s) # len('100101') --> 6
没有像__init__
etc 这样的习语,我可以在这里看到为什么self
在第一种情况下使用。我self
在程序函数的其他地方也看到了这种用法,并且发现它令人困惑。
所以我的问题是:如果没有类或方法,为什么self
在函数定义中使用而不是描述性参数名称?