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문 명 리 | 리 |
내부 변 | 변를 는 능 | 변를 는 불능 |