类不带参数(给出1个)

时间:2017-09-27 13:14:45

标签: python python-3.x class exception methods

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

mc = MyClass()
mc.say()

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

1 个答案:

答案 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