카테고리 없음

파이썬 'TypeError: 'int' object is not callable' 오류 해결법

vibespace 2025. 5. 26. 21:04

파이썬 'TypeError: 'int' object is not callable' 오류란?

파이썬에서 ‘TypeError: 'int' object is not callable’ 오류는 주로 int 타입 객체를 함수처럼 호출하려 할 때 발생합니다. 이 오류는 흔히 변수 이름과 함수 이름이 겹쳐서 발생하는 경우가 많습니다. 파이썬에서는 함수나 객체를 호출할 때 괄호(())를 사용하는데, int와 같은 숫자 객체를 호출하려 할 때 발생하는 문제입니다. 이 글에서는 ‘TypeError: 'int' object is not callable’ 오류의 원인과 해결 방법에 대해 설명합니다.

‘TypeError: 'int' object is not callable’ 오류의 원인

이 오류는 주로 두 가지 원인으로 발생합니다:

  • 변수 이름과 함수 이름이 겹침: 함수 이름이나 내장 함수 이름을 변수로 덮어쓸 때 발생할 수 있습니다. 예를 들어, 내장 함수 sum()을 변수로 덮어쓰면 sum()을 더 이상 함수처럼 호출할 수 없게 됩니다.
  • 숫자 객체를 함수처럼 호출: 숫자형 객체(int, float)를 괄호를 사용해 함수처럼 호출하려 할 때 발생합니다. 파이썬은 숫자 객체를 함수로 취급하지 않기 때문에 이 오류가 발생합니다.

‘TypeError: 'int' object is not callable’ 오류 해결 방법

이 오류를 해결하려면, 주로 변수 이름을 함수 이름과 겹치지 않도록 하거나 숫자 객체를 함수처럼 호출하지 않도록 해야 합니다. 아래에 몇 가지 해결 방법을 소개합니다.

1. 변수 이름과 내장 함수 이름이 겹치지 않도록 하기

파이썬 내장 함수와 변수 이름이 겹치지 않도록 주의해야 합니다. 예를 들어, sum, min, max 등의 내장 함수 이름을 변수로 덮어쓰면, 해당 함수들을 더 이상 호출할 수 없게 됩니다.

# 오류 발생 예시
sum = 10  # sum 함수가 아닌 변수로 덮어씀
result = sum([1, 2, 3])  # TypeError 발생

# 해결 방법
total = 10  # 변수 이름을 바꿔서 해결
result = sum([1, 2, 3])  # 정상적으로 함수 호출
print(result)

위 코드에서는 sum이라는 내장 함수 이름을 변수로 덮어쓴 후 함수 호출을 시도했기 때문에 오류가 발생합니다. 이를 해결하려면 변수 이름을 다른 이름으로 변경하고, 함수 호출을 정상적으로 수행하면 됩니다.

2. 숫자 객체를 함수처럼 호출하지 않기

숫자 객체를 함수처럼 호출하려고 할 때도 이 오류가 발생합니다. 예를 들어, int 객체나 float 객체를 괄호로 호출하려고 하면 파이썬은 숫자 객체를 함수처럼 처리하지 않기 때문에 오류가 발생합니다. 이 문제는 숫자 객체를 함수처럼 호출하지 않도록 코드에서 잘못된 부분을 수정하면 해결됩니다.

# 오류 발생 예시
my_num = 10
result = my_num()  # TypeError 발생, 숫자는 함수가 아님

# 해결 방법
my_num = 10
result = my_num + 5  # 함수 호출이 아닌 연산으로 해결
print(result)

위 코드에서 my_num()을 호출하려 했기 때문에 오류가 발생했습니다. 숫자는 함수처럼 호출할 수 없으므로, 연산을 수행하는 방식으로 수정하여 오류를 해결할 수 있습니다.

3. 숫자 객체와 함수가 혼동되지 않도록 변수 사용하기

변수와 함수 이름을 명확히 구분하여 사용하면 이 오류를 예방할 수 있습니다. 숫자 객체는 함수처럼 호출되지 않도록 명확한 변수명을 사용하고, 변수와 함수 이름이 겹치지 않도록 주의해야 합니다.

# 잘못된 예
int = 5  # 내장 함수 int를 변수로 덮어씀
result = int("123")  # TypeError 발생, int() 함수 호출 불가

# 해결 방법
my_int = 5  # 변수 이름을 변경하여 해결
result = int("123")  # 내장 함수 int 호출
print(result)

위 코드에서는 내장 함수 int()를 변수로 덮어쓴 후, 다시 함수로 호출하려 했기 때문에 오류가 발생했습니다. 변수 이름을 my_int와 같이 변경하여 내장 함수와 이름이 겹치지 않도록 해결할 수 있습니다.

‘TypeError: 'int' object is not callable’ 오류 예방을 위한 팁

‘TypeError: 'int' object is not callable’ 오류를 예방하려면 다음과 같은 방법들을 고려해보세요:

  • 내장 함수와 변수 이름이 겹치지 않도록 주의하세요.
  • 숫자 객체를 함수처럼 호출하지 않도록 연산과 호출을 구분하세요.
  • 변수 이름은 명확하게 지정하여 내장 함수와 혼동되지 않도록 하세요.
  • 코드를 작성할 때 변수와 함수 이름을 구분하여 가독성을 높이세요.

결론

‘TypeError: 'int' object is not callable’ 오류는 변수 이름과 함수 이름이 겹치거나 숫자 객체를 함수처럼 호출할 때 발생하는 오류입니다. 이 오류를 해결하려면 변수 이름을 내장 함수 이름과 겹치지 않도록 변경하고, 숫자 객체를 함수처럼 호출하지 않도록 주의해야 합니다. 이를 통해 오류를 예방하고, 보다 안전하고 오류가 적은 코드를 작성할 수 있습니다.