试图在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_
。
我假设你发布你的实际代码。
要说的对象是,你可以把它像这样调用方法:
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__
方法来调用用户定义的类中的对象,但这可能不是您想要在此处执行的操作。
如果为该类定义了__call__方法,则可以调用实例。 – anupsabraham
@anupsabraham是的,他们可以。但这几乎肯定不是OP想要的,我认为这只会令人困惑,但是很好。 –
是的。真正。刚才说过,如果你想将它包含在答案中。 – anupsabraham
它工作。谢谢!! –