为函数中的变量分配值,在函数调用[duplicate]之后未定义变量

问题描述 投票:0回答:1

我定义了一个函数,在调用时将一个值赋给变量。我想做的是有一个检查某些条件并根据条件成立的值的功能。但是,当我打印该变量时,它表示未定义。

简化问题:

def func():
    z=4

func()
print(z)

在运行时,它表示未定义z。

实际目标(已经定义了x,y和o。):

def calc():
    if o==1:
        z=x+y
    elif o==2:
        z=x-y

calc()
print(z)

但是它给出了此错误:NameError:名称'z'未定义

python function user-defined-functions variable-assignment
1个回答
0
投票

在计算机科学世界中被称为scope,而您的分配超出了主程序空间的scope

相反,您应该只返回值

def calc():
    if o==1:
        z=x+y
    elif o==2:
        z=x-y
    return z

y = calc()
print(y)
© www.soinside.com 2019 - 2024. All rights reserved.