我是新来的Python。我试图定义和运行在一个类的简单函数。

谁能告诉我什么在我的代码是错误的:

class A :
    def m1(name,age,address) :
        print('Name -->',name)
        print('Age -->',age)
        print('Address -->',address)


>>> a = A()
>>> a.m1('X',12,'XXXX')
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    a.m1('X',12,'XXXX')

我收到以下错误结果 的类型错误:M1()恰恰3的位置参数(4给出)

有帮助吗?

解决方案

实例方法采取实例作为第一个参数:

class A :
    def m1(self, name,age,address) :
        print('Name -->',name)
        print('Age -->',age)
        print('Address -->',address)

您也可以使用 @staticmethod装饰创建静态函数:

class A :
    @staticmethod
    def m1(name,age,address) :
        print('Name -->',name)
        print('Age -->',age)
        print('Address -->',address)

其他提示

的第一个参数总是是对象本身。

class A :
    def m1(self, name,age,address) :
        print('Name -->',name)
        print('Age -->',age)
        print('Address -->',address)

按照惯例,在一个类的实例的方法接收一个对象引用作为第一自变量,即self

>>> class A:
...     def m1(self,name,age,address):
...         print('Name -->',name)
...         print('Age -->',age)
...         print('Address -->',address)
...         
>>> a=A()
>>> a.m1('X',12,'XXXX')
('Name -->', 'X')
('Age -->', 12)
('Address -->', 'XXXX')
>>> 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top