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










