Python 如何从Inner方法访问外部方法中定义的变量

Python 如何从Inner方法访问外部方法中定义的变量,python,Python,我有一个简单的python代码,如下所示: def outer(): x = None y = None z = None def set(): x = 1 y = "Y" z = 2 def get(): return x, y, z set() m, s, n = get() print("%s, %s, %s" % (m, s, n)) outer()

我有一个简单的python代码,如下所示:

def outer():
    x = None
    y = None
    z = None

    def set():
        x = 1
        y = "Y"
        z = 2

    def get():
        return x, y, z

    set()
    m, s, n = get()
    print("%s, %s, %s" % (m, s, n))


outer()
我想得到
1y2
,但结果是
None

看起来变量x,y,z不是通过
set
方法设置的


我想问一下如何获得结果
1y2

您可以使用
非本地
关键字

def outer():
x=无
y=无
z=无
def set():
非局部x
非局部y
非局部z
x=1
y=“y”
z=2
def get():
返回x,y,z
集合()
m、 s,n=get()
打印(“%s,%s,%s”%(m,s,n))
外()
您可以使用
global
关键字访问全局变量