在python中使用超出定义的变量

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

我想在定义之外使用val,

def definition(var):

    list=["b","2","3"]

    val = list[var]
    return val

definition(0)
print(val)

但是它给出了这个错误:

  print(val)
NameError: name 'val' is not defined
python return definition
2个回答
1
投票

首先,您不应该使用list符号,因为它是内置的Python函数。

但是这里的问题是,您实际上并未分配val任何值。由于它是在该函数的范围内定义的,因此无法在其闭包之外进行访问。

因此,您需要声明val = definition(0),以便将definition的返回值存储在正确范围内的val中。

def definition(v):
    l = ["b","2","3"]

    return list[v]

value = definition(0)
print(value)

0
投票

似乎您正在尝试在提供给该功能的位置打印列表的值。下面是一种方法:

def definition(var):

    mylist=["b","2","3"]

    val = mylist[var]
    return val

my_val = definition(0)
print(my_val)

0
投票

我同意jordanm评论。 list是保留关键字。另外,请尽量避免使用变量名valvar。它将造成混乱。

def definition(apple):

    listabc=["b","2","3"]

    val = listabc[apple]
    return val

val = definition(0)
print(val)
© www.soinside.com 2019 - 2024. All rights reserved.