>백엔드 개발 >파이썬 튜토리얼 >내 Python 클래스 생성자가 `TypeError: 예제()에 인수가 없습니다` 또는 `AttributeError`와 함께 실패하는 이유는 무엇입니까?

내 Python 클래스 생성자가 `TypeError: 예제()에 인수가 없습니다` 또는 `AttributeError`와 함께 실패하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-30 00:08:14181검색

Why Does My Python Class Constructor Fail with `TypeError: Example() takes no arguments` or `AttributeError`?

클래스 생성자 이름 지정과의 혼동:

클래스 생성 중에 새로운 Python 프로그래머는 이름이 잘못된 클래스 생성자와 관련된 오류에 자주 직면합니다. 두 가지 일반적인 오타는 "def __init__" 대신 "def __int__"를 사용하거나 "def __init__" 대신 "def _init_"를 사용하는 것입니다.

"def __int__":

클래스 생성자의 이름은 양쪽에 두 개의 밑줄이 있는 "__init__"로 지정되어야 합니다. "def __int__"를 사용하면 정수 변환 함수가 클래스에 할당되므로 인수를 사용하여 클래스를 인스턴스화하려고 하면 오류가 발생합니다.

class Example:
    def __int__(self, parameter):  # Incorrect
        self.attribute = parameter

"def _init_":

"def _init_"를 사용하면 예상 생성자와 일치하지 않기 때문에 오류가 발생합니다. name.

class Example:
    def _init_(self, parameter):  # Incorrect
        self.attribute = parameter

"TypeError: 예제()에 인수가 없습니다.":

클래스의 인스턴스를 생성하려고 하면 "TypeError: 예제 ()는 인수를 사용하지 않습니다." 오류는 잘못된 생성자 이름에 정수 변환 함수가 할당되었기 때문에 발생합니다.

"속성 오류: '예제' 객체에 'attribute' 속성이 없습니다.":

이 오류는 클래스 인스턴스에 예상된 속성이 없음을 나타냅니다. 그 이유는 잘못된 생성자 이름이 클래스 내의 속성을 설정하지 않았기 때문입니다.

예방:

이러한 오류를 방지하려면 항상 클래스 생성자가 이름은 "__init__"으로 올바르게 지정되었습니다. 이러한 오타를 잡기 위해서는 교정과 훈련이 필수적입니다. 또한 "__init__"을 클래스의 첫 번째 메소드로 배치하는 규칙을 사용하면 오류를 방지하는 데 도움이 될 수 있습니다.

위 내용은 내 Python 클래스 생성자가 `TypeError: 예제()에 인수가 없습니다` 또는 `AttributeError`와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.