̽
2017-02 2017-02-01 00:43:55 ȸ 4597 õ 0
안녕하세요
파이썬에서
def aaa(): x = 11
def bbb(): y = x + 13 print(y)
bbb()
이렇게 짰다고 했을 때, aaa함수의 변수 x를 bbb에서 사용할 수 있게 하려면 어떻게 해야하는지 궁금합니다.
global x
x = 11
x global ð ȵǾ ִµ, Լaaa global x ص dz?
ڹó ٲ մϴ.
def aaa():
x = 11
def bbb():
y = x + 13
print(y)
x=0
bbb()
x = 0
def aaa()
global x
x = 11
Լ aaa ǵǾ ִ x = 11 ̰
Լ bbb ҷͼ, x ְԴ ϳ??
C/C++ 쿡 return · Լ ٸ Լ ֽϴ.
̽ ȵǷ?
global Ͻø ˴ϴ
Լ Ƿ ʱ ϼž ǰ, ׳ Ƿ
Լ return x Ƽ ø ˴ϴ
ô ° ~~|
1. local Ǿִ Ȯ
2. local global Ȯ
3. global undefined error
Ĩϴ.
̽ ⺻ ʱ
1. local Ǿ no problem
2. local Ǿ
2-a. local
2-b. global ִ
2-a 2-b ߿ 2-a 켱 ˴ϴ.
ٸ Լ ϱ ؼ global scope ϰ, aaa Լ "global " 2-b ġ ּž մϴ.
ƴϸ x ٲµ bbb x ٲ Ǵ° ̽ö, ̽ first-class function ȰϿ
>>> def make_bbb(x):
... def _bbb():
... y = x + 13
... print (y)
... return _bbb
...
>>> make_bbb(11)()
24
>>> make_bbb(20)()
33
α Ͻ ֽϴ.