스택큐힙리스트

타입 에러: 'self'가 필요한 위치 인자 1개가 빠졌습니다. 본문

카테고리 없음

타입 에러: 'self'가 필요한 위치 인자 1개가 빠졌습니다.

스택큐힙리스트 2023. 4. 3. 07:20
반응형

나는 이와 같은 코드를 가지고 있습니다.

class Pump:

def __init__(self):

print(init)

def getPumps(self):

pass

p = Pump.getPumps()

print(p)

하지만 다음과 같은 오류가 발생합니다:

Traceback (most recent call last):

File C:\Users\Dom\Desktop\test\test.py, line 7, in

p = Pump.getPumps()

TypeError: getPumps() missing 1 required positional argument: 'self'

왜 __init__은 호출되지 않는 것 같고, 이 예외는 무엇을 의미하는 것인가요? 내 이해에 따르면 self는 생성자와 메소드에 자동으로 전달됩니다. 여기서 무엇이 잘못되었나요?

답변 1

클래스를 사용하려면 먼저 다음과 같이 인스턴스를 생성하십시오:

p = Pump()

p.getPumps()

예시 전체:

>>> class TestClass:

... def __init__(self):

... print(init)

... def testFunc(self):

... print(Test Func)

...

>>> testInstance = TestClass()

init

>>> testInstance.testFunc()

Test Func

답변 2

키워드: TypeError, 위치인자, 미국

TypeError: Missing 1 required positional argument: 'self'

미국에서는 프로그래밍 언어를 공부하는 사람들이 많은데, 이들 중에서도 파이썬이 가장 인기 있는 언어 중 하나이다. 파이썬은 다른 언어에 비해 문법이 쉽고 이해하기 쉽기 때문에 누구나 쉽게 배울 수 있다.

그러나, 파이썬을 사용하다가 종종 만날 수 있는 에러 중 하나가 TypeError이다. TypeError는 객체나 함수의 입력 인자 자료형이 잘못되었다는 것을 의미한다. 이 에러는 파이썬이 인터프리터 언어이기 때문에 실행 시점에 발생한다.

하지만, 가끔 TypeError가 발생하는 이유가 자신도 모르게 발생할 때가 있다. 이때, 많은 프로그래머들은 'Missing 1 required positional argument: 'self''라는 메시지를 볼 수 있다. 이 에러는 인자가 부족한 경우에 발생하는데, 클래스의 메소드에서 self 인자를 빼먹은 경우이다.

따라서, 프로그래머가 클래스를 작성할 때는 self 인자를 꼭 넣어주어야 한다. 이것은 파이썬의 특징 중 하나로, self 인자를 통해 메소드가 소속된 클래스의 인스턴스를 참조할 수 있기 때문이다. 이러한 규칙을 지켜주면, TypeError와 같은 에러를 방지할 수 있을 뿐만 아니라, 코드를 보다 깔끔하고 가독성 있게 작성할 수 있다.

결론적으로, TypeError가 발생하는 경우 가장 많은 이유 중 하나는 self 인자를 충분히 이해하지 못한 상태에서 코드를 작성하기 때문이다. 이와 같은 에러를 최소화하기 위해 프로그래머는 파이썬의 특징과 규칙을 잘 이해하고, 올바르게 적용해야 한다.

반응형
Comments