参见英文答案 > TypeError: attack() missing 1 required positional argument: ‘self’ 2个
我是Python的新手.我写了两个类,第二个有第一个的实例作为成员变量.现在我想通过类1中的实例调用Class2的方法.我找不到答案.像这样的东西:
class Class1:
def uselessmethod(self):
pass
class Class2:
def __init__(self):
self.c = Class1()
def call_uselessmethod(self):
self.c.uselessmethod()
k = Class2
k.call_uselessmethod() # Error!
给出以下错误:
k.call_uselessmethod() #Error
TypeError: call_uselessmethod() missing 1 required positional argument: 'self'
知道这里发生了什么吗?提前致谢.
解决方法:
call_uselessmethod要求在使用之前首先有一个Class2实例.但是,通过这样做:
k = Class2
你没有将k分配给Class2的实例,而是分配给Class2本身.
要创建Class2的实例,请在类名后面添加():
k = Class2()
k.call_uselessmethod()
现在,您的代码将起作用,因为k指向Class2的实例,就像它应该的那样.
标签:python,class,instance,methods