class MyClass:
def say():
print("hello")
mc = MyClass()
mc.say()
我收到错误:TypeError: say() takes no arguments (1 given)
。我做错了什么?
答案 0 :(得分:9)
这是因为类中的方法期望第一个参数为self
。这个self
参数由python内部传递,因为它总是在调用方法时向自己发送引用,即使它在方法中未使用
class MyClass:
def say(self):
print("hello")
mc = MyClass()
mc.say()
>> hello
或者,您可以将方法设为静态并删除self
参数
class MyClass:
@staticmethod
def say():
print("hello")
mc = MyClass()
mc.say()
>> hello