【发布时间】:2017-01-11 01:45:20
【问题描述】:
我正在浏览一些代码,我注意到一行引起了我的注意。代码类似于下面的例子
class MyClass:
def __init__(self):
pass
def call_me(self=''):
print(self)
这看起来像我见过的任何其他类,但是 str 正在作为 self 的默认值传入。
如果我打印出self,它的行为正常
>>> MyClass().call_me()
<__main__.MyClass object at 0x000002A12E7CA908>
这一直困扰着我,我无法弄清楚为什么要使用它。是否有任何理由将str 实例作为self? 的默认值传入
【问题讨论】:
-
听起来有人也想让
MyClass.call_me()工作。然而,这不是一个特别好的主意,他们本可以改为classmethod。 -
如果
call_me是从类本身而不是从实例调用的,那么''作为实例传递,方法调用不会引发错误。
标签: python class python-3.x