> 백엔드 개발 > 파이썬 튜토리얼 > Python 오류 해결 방법: TypeError: 'xxx' 개체를 호출할 수 없습니다.

Python 오류 해결 방법: TypeError: 'xxx' 개체를 호출할 수 없습니다.

WBOY
풀어 주다: 2023-08-19 10:00:45
원래의
6854명이 탐색했습니다.

如何解决Python报错:TypeError: 'xxx' object is not callable?

Python 오류 해결 방법: TypeError: 'xxx' 개체를 호출할 수 없습니다.

파이썬 프로그래밍 분야에서는 오류가 자주 발생합니다. 일반적인 오류 중 하나는 TypeError: 'xxx' 개체를 호출할 수 없습니다. 이 오류는 현재 코드에서 객체가 사용되는데 함수로 호출되지만 실제로는 객체를 호출할 수 없다는 의미입니다. 이 문제를 더 잘 이해하고 해결하는 데 도움이 되도록 몇 가지 코드 예제와 함께 이 오류의 원인, 식별 및 해결 방법을 자세히 살펴보겠습니다.

먼저 특정 코드 예를 살펴보겠습니다.

class MyClass:
    def __init__(self, x):
        self.x = x
    
    def print_x(self):
        print(self.x)

obj1 = MyClass(10)
obj2 = MyClass(20)

print(obj1())  # 报错发生在这一行
로그인 후 복사

위 코드는 초기화 메서드 __init__과 x를 인쇄하는 print_x 메서드가 있는 MyClass 클래스를 정의합니다. 기본 프로그램에서는 이 클래스의 두 개체 obj1과 obj2를 만들고 obj1을 호출하려고 시도했지만 TypeError: 'MyClass' 개체는 호출할 수 없습니다 오류가 발생했습니다.

우선, 이 오류를 해결하려면 오류의 원인을 명확히 해야 합니다. TypeError: 'xxx' 개체는 호출할 수 없습니다. 일반적으로 호출할 수 없는 개체를 호출하려고 한다는 의미입니다. 위의 코드 예제에서는 obj1 개체를 호출하려고 했지만 이 개체는 MyClass 클래스의 인스턴스이며 호출되도록 설계되지 않았습니다. 따라서 Python에서는 이 오류가 발생합니다.

이제 이 오류의 원인을 이해했으므로 다음 단계는 오류를 식별하고 수정하는 방법입니다. 다음과 같은 몇 가지 일반적인 상황이 있습니다.

  1. 클래스 인스턴스의 잘못된 사용: 위의 코드 예에서는 객체 obj1을 호출하려고 하지만 실제로는 객체가 속한 클래스의 메서드를 호출해야 합니다. 따라서 위의 코드를 obj1.print_x()로 수정할 수 있습니다.
class MyClass:
    def __init__(self, x):
        self.x = x
    
    def print_x(self):
        print(self.x)

obj1 = MyClass(10)
obj2 = MyClass(20)

obj1.print_x()  # 输出10
로그인 후 복사
  1. 변수 이름을 함수 이름과 혼동하는 실수: 또 다른 일반적인 상황은 클래스 메서드 이름과 인스턴스 변수 이름을 혼동하여 인스턴스 변수를 함수로 잘못 호출하는 것입니다. 예를 들어, 다음 코드는 TypeError: 'int' object is not callable 오류를 발생시킵니다.
class MyClass:
    def __init__(self, x):
        self.x = x
    
    def print_x(self):
        print(self.x)

obj1 = MyClass(10)
obj2 = MyClass(20)

print(obj1.x())  # 报错发生在这一行
로그인 후 복사

이 문제를 해결하려면 변수 이름과 함수 이름을 분리하도록 코드를 수정해야 합니다.

class MyClass:
    def __init__(self, x):
        self.x = x
    
    def print_x(self):
        print(self.x)

obj1 = MyClass(10)
obj2 = MyClass(20)

print(obj1.x)  # 输出10
로그인 후 복사

마지막으로 이 오류를 더 잘 이해하고 방지하기 위해 또 다른 코드 예제를 제공합니다.

def add(a, b):
    return a + b

result = add(3, 5)
print(result())

# 报错的原因是result是一个int类型的变量,而不是函数
로그인 후 복사

여기에서는 두 개의 매개변수를 받아들이고 그 합을 반환하는 add 함수를 정의합니다. 그런 다음 add(3, 5)의 결과를 result에 할당하고 result()를 인쇄하려고 합니다. 그러나 TypeError: 'int' 객체는 호출할 수 없습니다 오류가 발생했습니다. 이 문제를 해결하려면 대괄호만 제거하면 됩니다.

def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 输出8
로그인 후 복사

위의 코드 예제를 통해 모든 사람이 일반적인 Python 오류 TypeError: 'xxx' object is not callable을 이해하고 해결하는 데 효과적으로 도움이 되기를 바랍니다. 이 오류가 발생하면 위에서 언급한 문제가 코드에 존재하는지 확인하고 유사한 오류가 발생하지 않도록 코드를 적절하게 조정하십시오.

위 내용은 Python 오류 해결 방법: TypeError: 'xxx' 개체를 호출할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿