1. 함 호 ¶
~cpp def 함(..): (statements) return <>
~cpp def add(a,b): return a+b
return 함 호한 . def 함 하
add 할한. , add 함 reference .
add 할한. , add 함 reference .
add 함 하 하 해 함 호할 .
~cpp >>> f = add >>> f(4,5) 9
pass 하 통(statement). 함 한 한 하 한.
~cpp def add(a,b): pass
2. ¶
~cpp >>> def f(t): t = 10 >>> a = 20 # a 20 한. >>> f(a) # a t 통해 t a 한 . t = 10 t 10 한. a 함. >>> print a 20
3. return ¶
~cpp >>> def f(): return >>> f() >>> a = f() >>> print a None
return 하 함 호 하 .
return 하, None .
None 파 , 한 .
return 하, None .
None 파 , 한 .
a .
return 하 None 한.
, 하 None .
, 하 None .
4. Scoping Rule ¶
*
LGB Local, Global, Built-in , , .
- (local scope) - 함
- (global scope) - (파)
- (built-in scope) - 파 한
LGB Local, Global, Built-in , , .
~cpp # g, h g = 10 h = 5 def f(a): # a h = a + 10 # h ( 했) b = a + g # b , g return b
g, h 함 , a,b 함 .
h 함 하 함 h,
함 h 한.
함 f 함 f ( ).
h 함 하 함 h,
함 h 한.
함 f 함 f ( ).
함 f h 하(, h 한)
global 하 h 해 한.
global 하 h 해 한.
~cpp def f(a): # a global h h = a + 10 # h
~cpp g = 10 def f(): a = g g = 20 return a f()
- (Nested scopes) (2.1)
~cpp x = 2 # global def F(): x = 1 # 함 G local global def G(): print x G() F()함 G 하 x (함 G), (), 함 F x .(x = 2)
2.1 함 F x 하 .
5.1. ¶
~cpp >>> def incr(a, step=1): return a + step >>> b = 1 >>> b = incr(b) # 1 >>> b 2 >>> b = incr(b, 10) # 10 >>> b 12
5.2. 키 ¶
~cpp >>> def area(height, width): print height, width # >>> a = area(width=20, height=10) 10 20
5.3. 트 ¶
함 - 튜플 형
~cpp >>> def varg(a, *arg): print a, arg >>> varg(1) 1 () >>> varg(2,3) 2 (3,) >>> varg(2,3,4,5,6) 2 (3, 4, 5, 6)
5.4. 키 하 ¶
키 함 할 **kw형 한.
형 . 키 키(), 키 .
형 . 키 키(), 키 .
~cpp >>> def f(width, height, **kw): print width, height print kw >>> f(width = 10, height=5, depth=10, dimension=3) 10 5 {'depth': 10, 'dimension': 3}
5.5. 튜플 함 호하(2.0 ) ¶
~cpp >>> def h(a,b,c): print a,b,c >>> args = (1,2,3) >>> h(*args) 1 2 3
~cpp >>> dargs = {'a':1, 'b':2, 'c':3} >>> h(**dargs) 1 2 3
~cpp >>> args = (1,2) >>> dargs ={'c':3} >>> h(*args, **dargs) 1 2 3
6. 함 ¶
함 한 함.
~cpp lambda :
~cpp >>> f = lambda:1 >>> f() 1
~cpp >>> g = lambda x, y: x+y >>> g(1,2) 3
~cpp >>> incr = lambda x, inc=1: x+inc >>> incr(10) 11 >>> incr(10,5) 15
~cpp >>> vargs = lambda x, *args: args >>> vargs(1,2,3,4,5) (2, 3, 4, 5)
~cpp >>> kwords = lambda x, *args, **kw: kw >>> kwords(1,2,3, a=4, b=6) {'a': 4, 'b': 6}
def 함 | lambda 함 | |
/ | (statement) | (expression) |
함 | def 한 함 환한 | 함 한 |
한 포함 | 하 | |
return 해 | ||
하 하 | 하 |