试图在Python一类叫

试图在Python一类叫

问题描述:

class Spillebrett: 
    def _init_ (self, rader, kolonner): 
     self._rader=rader 
     self._kolonner=kolonner 

我已经在一个文件中写入这一点,并在另一个我写了下面的试图在Python一类叫

从spillebrett进口Spillebrett

def main(): 
    nyttspillebrett=Spillebrett() 
    nyttspillebrett(input("Fyll inn antall rader\n"), input("Fyll inn antall kolonner\n")) 

,但我得到的错误: TypeError: 'Spillebrett' object is not callable

为什么对象不可调用?

这是__init__而不是_init_

我假设你发布你的实际代码。

+0

它工作。谢谢!! –

要说的对象是,你可以把它像这样调用方法:

my_obect() 

使用括号像被调用。所以函数可以被调用,例如max(1,2,3),类对象调用的:my_instance = MyClass()等,您已定义的类,类本身就是可调用的,的确,你这样做,在这里:

nyttspillebrett=Spillebrett() 

但是,您要拨打实例你的类的,但你的实例不可调用。相反,你可能想:

nyttspillebrett = Spillebrett(input("Fyll inn antall rader\n"), input("Fyll inn antall kolonner\n")) 

但是请注意,这仍然是行不通的,因为你需要改变你的_init___init__,通知,这是强调:的__代替_

请注意,可以通过实现__call__方法来调用用户定义的类中的对象,但这可能不是您想要在此处执行的操作。

+0

如果为该类定义了__call__方法,则可以调用实例。 – anupsabraham

+0

@anupsabraham是的,他们可以。但这几乎肯定不是OP想要的,我认为这只会令人困惑,但是很好。 –

+0

是的。真正。刚才说过,如果你想将它包含在答案中。 – anupsabraham