在python中是否必须有一个init方法的主体?

时间:2014-11-11 02:50:54

标签: python

我是否可以不在self中添加任何参数到init方法中?除了self之外,我还可以拥有一个不定义任何其他变量的主体吗?

class foo(object):
    def __init__(self):
        self = self

或者我必须像这样放置参数和身体:

class bar(object):
    def __init__(self, x):
        self.x = x

2 个答案:

答案 0 :(得分:4)

如果您无需初始化,则根本不需要定义__init__方法。只是没有定义它。

答案 1 :(得分:0)

如果您没有使用__init__,则根本没有理由对其进行定义。

然而,如果这是理论上的,那么 会有一个问题:为什么不先试试?

为了完成,这是我的试用版:

>>> class foo(object):
...     def __init__(self):
...         self = self
... 
>>> foo()
<__main__.foo object at 0x1004afa50>
>>> x = foo()
>>> 

答案是:是的,你可以做到这一点。 为了点self = self而不是打pass,只需要{{1}};在这样的情况下,它是一个占位符。