TypeError: 'int' object is not callable 에러가 떠요

조회수 1094회
def k(T, n):  # 속도 상수
    if n == 1:
        return Kb * T / h * np.exp(-gibbs / (R * T))
    elif n == 2:
        return Kb * T / h * np.exp(-gibbs1 / (R * T))

def ktot(T, n):  # 총 속도 상수
    _t = 0.0
    for m in range(n):
        _t += k(T, m + 1)
    return _t

위처럼 짰는데 아래와 같이 나왔어요

Traceback (most recent call last):
  File "C:\Users\1\Desktop\대학\파이썬\main.py", line 259, in <module>
    _time += -1 * np.log(r) / ktot(T2, 2)    # t값 누적 증가
  File "C:\Users\1\Desktop\대학\파이썬\main.py", line 52, in ktot
    _t += k(T, m + 1)
TypeError: 'int' object is not callable

1 답변

  • [__] object is not callable 이라는 에러는 함수가 아닌 무엇을 함수처럼 썼을 때 나오는 에러입니다.

    질문에서는 k(T, m+1) 에 대해서 'int' object is not callable 에러가 발생했고, 이는 k 가 함수가 아닌 int 형의 변수라는 뜻입니다. 아마도 코드 중간에 k 라는 정수형 변수가 사용되어서, def k(...) 로 정의한 함수가 가려졌(shadowing 이라고 합니다.)을 가능성이 큽니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)