为什么我不能使用python在b函数中打印aa

zjm*_*126 0 python scope

这是我的代码:

def a():
    print aa

def b():
    aa = 'aaaa'
    a()

b()
Run Code Online (Sandbox Code Playgroud)

它显示错误:

Traceback (most recent call last):
  File "g.py", line 12, in <module>
    b()
  File "g.py", line 10, in b
    a()
  File "g.py", line 6, in a
    print aa
NameError: global name 'aa' is not defined
Run Code Online (Sandbox Code Playgroud)

aa必须在B函数来定义,

我能做什么 ,

谢谢

jm_*_*all 5

aa仅在b()的范围内定义.您可以将变量定义拉出函数或将其用作参数.

这应该工作:

def a():
    print aa

def b():
    global aa
    aa = 'aaaa'
    a()

b()
Run Code Online (Sandbox Code Playgroud)

当然,这也应该有效:

def a(aa):
    print aa

def b():
    aa = 'aaaa'
    a(aa)

b()
Run Code Online (Sandbox Code Playgroud)