1st class citizen(일등 시민)
- 프로그래밍언어에서 1st class라는 의미는 해당 객체를 사용하는데 있어서 아무런 "제약없음"을 의미
- python에서는 모든 것이 객체(object)
- 숫자, 문자열, 튜플, 리스트, 딕셔너리 등 존재하는 모든 값을 객체로 볼 수 있음
- 함수 역시 객체이며, 객체이기 때문에 변수의 값에 할당하거나, 함수의 파라미터로 전달하거나, 리스트의 원소가 되는 등 일반 타입처럼 사용 할 수 있다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | def test1(): print 23 def run_something(func): func() test2 = test1 # 함수를 변수에 대입 test2() print '=' * 20 print test1, type(test1) run_something(test1) print '=' * 20 print test2() <<<<< 실행결과 >>>>> 23 ==================== <function test1 at 0x048697B0> <type 'function'> 23 ==================== 23 None | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | def bubble_sort(): pass def quick_sort(): pass def sort(sort_method): return sort_method() print sort(bubble_sort) print sort(quick_sort) <<<<< 실행결과 >>>>> None None | cs |
반응형
'Python > Python Basic' 카테고리의 다른 글
Day5) 2. filter, map, reduce (0) | 2017.05.25 |
---|---|
Day5) 1. Lambda 함수 (0) | 2017.05.25 |
Day4) 3. variable length argument(가변길이 인자) (0) | 2017.05.25 |
Day4) 2. multiple return(복수 값 반환) & variable scope(변수의 범위) (0) | 2017.05.25 |
Day4) 1.Default parameter(기본인자) & keyword parameter (0) | 2017.05.24 |