문제

나는 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')

오류 가하로 받고 있습니다
TypeError : 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