我想在定义之外使用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
首先,您不应该使用list
符号,因为它是内置的Python函数。
但是这里的问题是,您实际上并未分配val
任何值。由于它是在该函数的范围内定义的,因此无法在其闭包之外进行访问。
因此,您需要声明val = definition(0)
,以便将definition
的返回值存储在正确范围内的val
中。
def definition(v):
l = ["b","2","3"]
return list[v]
value = definition(0)
print(value)
似乎您正在尝试在提供给该功能的位置打印列表的值。下面是一种方法:
def definition(var):
mylist=["b","2","3"]
val = mylist[var]
return val
my_val = definition(0)
print(my_val)
我同意jordanm
评论。 list
是保留关键字。另外,请尽量避免使用变量名val
或var
。它将造成混乱。
def definition(apple):
listabc=["b","2","3"]
val = listabc[apple]
return val
val = definition(0)
print(val)