类不带参数(给出1个)

Dmi*_*kov -2 python methods exception class python-3.x

class MyClass:
    def say():
        print("hello")

mc = MyClass()
mc.say()
Run Code Online (Sandbox Code Playgroud)

我收到了错误:TypeError: say() takes no arguments (1 given).我做错了什么?

AK4*_*K47 9

这是因为类中的方法期望第一个参数self.此self参数由python内部传递,因为它在调用方法时始终向自身发送引用,即使它在方法中未使用

class MyClass:
    def say(self):
        print("hello")

mc = MyClass()
mc.say()
>> hello
Run Code Online (Sandbox Code Playgroud)

或者,您可以使方法静态并删除self参数

class MyClass:
    @staticmethod
    def say():
        print("hello")

mc = MyClass()
mc.say()
>> hello
Run Code Online (Sandbox Code Playgroud)