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 해 | ||
| 하 하 | 하 |










