Python:按实例对象调用方法:“缺少 1 个必需的位置参数:‘self’”

Mon*_*nic 5 python methods class instance

我是 Python 的新手。我写了两个类,第二个类有第一个类的实例作为成员变量。现在我想通过类一中的实例调用类 2 的方法。我找不到答案。像这样的东西:

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!
Run Code Online (Sandbox Code Playgroud)

给出以下错误:

k.call_uselessmethod() #Error
TypeError: call_uselessmethod() missing 1 required positional argument: 'self'
Run Code Online (Sandbox Code Playgroud)

知道这里发生了什么吗?提前致谢。

小智 5

call_uselessmethod要求Class2在您使用它之前首先有一个实例。但是,通过这样做:

k = Class2
Run Code Online (Sandbox Code Playgroud)

您不是分配k给实例Class2而是分配给它Class2本身。

要创建 的实例Class2,请()在类名后添加:

k = Class2()
k.call_uselessmethod()
Run Code Online (Sandbox Code Playgroud)

现在,您的代码将起作用,因为k指向Class2它应该的实例。