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 값 | 결과 | |
고 |