본문 바로가기

programming/python

파이썬 딕셔너리 value + ()

멘토께서 피드백을 주신 내용으로 간단한 예제를 만들어 보았다.

코드를 보고, 앗 이런 게 가능하다니! 

놀랐다 ^^

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def go_to_daum():
    print('go to daum')
 
 
def go_to_naver():
    print('go to naver')
 
 
def go_to_google():
    print('go to google')
 
 
MOVE_SITE = {
    'daum': go_to_daum,
    'naver': go_to_naver,
    'google': go_to_google
}
 
 
site = 'daum'
MOVE_SITE[site]() # go to daum
 
cs

 

*참고로 함수 선언이 MOVE_SITE 딕셔너리 보다 위에 있어야 한다.

선언한 함수들의 위치가 MOVE_SITE 딕셔너리 아래에 있으면 에러가 난다.

 

어디서 비슷한 걸 본 것 같기도 해서 생각해보니 자바스크립트 코드에서 봤던 것 같기도 하다.

아마 이 책 저 책 예제 따라하다가 뭔지도 모른채 쳐봤을 가능성이 크다.

어쨌든 자바스크립트로도 예제를 만들어 보았다~ 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function go_to_daum(){
    console.log('go to daum')
}
 
function go_to_google(){
    console.log('go to google')
}
 
const MOVE_SITE = {
    DAUM   : go_to_daum,
    GOOGLE : go_to_google, 
};
 
 
let site = 'DAUM';
MOVE_SITE[site]()
 
// 출력
// go to daum 
 
cs

* 자바스크립트에서 함수는 따로 return 문을 작성하지 않으면, undefined 를 반환한다.

  ㄴ console.log(console.log('test')) 이렇게 되어서 나온 것이었다.(수정)

 

* 자바스크립에서는 MOVE_SITE 가 함수 선언부 위에 있어도 실행되는 것을 확인했다.