일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 컴퓨터비전
- 2
- 프로그래밍
- 컴퓨터과학
- 파이썬
- 웹개발
- 자료구조
- 빅데이터
- 네트워크
- 데이터과학
- 보안
- 머신러닝
- 인공지능
- 알고리즘
- 데이터분석
- 코딩
- 소프트웨어
- 자바스크립트
- 소프트웨어공학
- 클라우드컴퓨팅
- 컴퓨터공학
- 사이버보안
- 네트워크보안
- 버전관리
- 프로그래밍언어
- Yes
- 데이터베이스
- I'm Sorry
- 데이터구조
- 딥러닝
- Today
- Total
스택큐힙리스트
타입 에러: 'self'가 필요한 위치 인자 1개가 빠졌습니다. 본문
나는 이와 같은 코드를 가지고 있습니다.
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 인자를 충분히 이해하지 못한 상태에서 코드를 작성하기 때문이다. 이와 같은 에러를 최소화하기 위해 프로그래머는 파이썬의 특징과 규칙을 잘 이해하고, 올바르게 적용해야 한다.