본문 바로가기

참고문서(번역?)/파이썬

python은 함수도 이름으로 취급

Python은 개발자를 골탕 먹이기 위한 언어일 지도 ㅠㅠ

def square(x):

return x*x

def cube(x):

return x*x*x

funcs = {

"square": square,

"cube": cube

}

이렇게 정의해 놓고 다음과 같이 씁니다. 뭔가 이상한 것을 발견한 분 없나요? ^^

x = 2

square(x)

cube(x)

for func in sorted(funcs):

print(func, funcs[func](x))

위의 코드를 실행하면 다음과 같이 나옵니다.

4

8
cube 8
square 4

그래서 다음을 중간에 찍어봅니다.

print(funcs.items())

[수행결과]

dict_items([('square', <function square at 0x05672ED0>), ('cube', <function cube at 0x0562C6F0>)])

즉 함수를 정의하고 함수명을 변수로 넣으면 마치 변수처럼 취급합니다.

Python에는 case 문이 없고 위의 방식처럼 사용한다고 하네요... ^^