Python 오류: 개체를 호출할 수 없습니다.
개체를 호출할 수 없습니다
유형 오류에 대해 논의하고 이를 수정하는 방법을 알아봅니다. 또한 객체가 Python에서 호출 가능한지 여부를 확인하기 위해 호출 가능한 함수를 활용하는 방법에 대해서도 설명합니다.
Python 오류 수정 객체를 호출할 수 없습니다
이 오류(object is not callable
)를 볼 때 아마도 Python 스크립트 내에서 무슨 일이 일어나고 있는지 이해해야 할 것입니다. 예를 들어 문제와 해결 방법을 보여주는 몇 줄의 코드가 있습니다.
에러 코드:
v = 5
g = 9
int = 3
print(int(g / v * int))
출력:
TypeError: 'int' object is not callable
세 개의 변수 v
, g,
및 int
가 있습니다. 함수인 int
라는 변수를 정의했기 때문에 이 문제가 발생합니다.
int
는 Python 내장 함수이므로 int
를 변수 이름으로 사용할 수 없습니다. 따라서 Python 스크립트가 실행될 때 변수 이름 int
를 호출하려고 합니다. int
는 Python 내에서 제한되는 이름이므로 변수로 사용할 때 이 오류가 표시됩니다.
변수 이름을 변경하고 이 스크립트를 다시 실행하여 오류를 수정했습니다.
고정 코드:
v = 5
g = 9
d = 3
print(int(g / v * d))
출력:
5
Python 스크립트 내부에 함수가 있는 프로그램을 실행할 때 동일한 문제에 직면하게 되므로 해당 함수를 변수 이름으로 지정해서는 안 됩니다. 문자열, 부동 소수점 등에서도 동일한 문제가 발생합니다.
이 오류가 발생하면 먼저 변수가 함수 이름을 호출하는지 여부를 확인해야 합니다. 다음 코드 예제와 같이 데이터 유형 값을 저장하는 변수를 호출할 수 없습니다.
에러 코드:
x = "josh"
x()
출력:
TypeError: 'str' object is not callable
Python의 callable()
함수
개체를 함수처럼 호출할 수 있는 경우 callable()
함수는 True
를 반환하고 모든 개체가 될 수 있는 하나의 매개 변수를 허용합니다.
예를 들어 x
가 42
인 변수가 있는 경우 이 변수는 메모리의 정수를 나타냅니다. x
를 callable()
함수에 전달하고 결과를 즉시 인쇄하여 true
또는 false
값을 반환하는지 확인할 수 있습니다.
이것을 실행할 때 반환 값은 42
정수를 호출할 수 없기 때문에 false
입니다.
예제 코드:
x = 42
print(callable(x))
출력:
False
callable()
함수가 자신을 호출하면 어떤 일이 발생하는지 확인해 봅시다. callable()
함수 안에 callable을 입력하고 이를 인쇄합니다. 결과가 True
인 것을 볼 수 있으며 분명히 호출 가능한 print
함수를 전달할 수도 있습니다.
print(callable(callable))
print(callable(print))
출력:
True
True
호출 가능 여부에 관계없이 내장 객체가 아닌 사용자 정의 객체를 정의한다고 가정합니다. 무언가를 반환하는 FUNC()
라는 함수를 만들어 봅시다.
우리는 이 함수 이름을 callable()
함수에 전달하고 출력을 인쇄하며 이것은 호출 가능합니다. FUNC()
를 사용하여 반환 값을 호출하면 정수가 되어 callable()
함수에 전달됩니다. 출력은 False
를 반환할 것이며 이는 우리가 이미 보고 있는 정수를 호출할 수 없기 때문에 호출할 수 없습니다.
예:
def FUNC():
return 51
print(callable(FUNC))
print(callable(FUNC()))
출력:
True
False
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn관련 문장 - Python Error
- AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.
- AttributeError 해결: 'list' 객체 속성 'append'는 읽기 전용입니다.
- AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.
- AttributeError: 'Dict' 객체에 Python의 'Append' 속성이 없습니다.
- AttributeError: 'NoneType' 객체에 Python의 'Text' 속성이 없습니다.
- AttributeError: Int 객체에 속성이 없습니다.