可以说我有4个空变量和2个列表:
v1 = ""
v2 = ""
v3 = ""
v4 = ""
list_1 = ['2', '7', '18', '3']
list_2 = ['75', '8', '0', '13']
现在,我想创建一个函数,该函数使用列表作为参数将值分配给空变量:
def assigner(list_a):
for item in list_a:
v1 = list_a[0]
v2 = list_a[1]
v3 = list_a[2]
v4 = list_a[3]
因此,我调用了该函数,然后尝试一个变量来检查是否已根据列表分配了新值。但是我所看到的只是''
。怎么了
assigner(list_1)
print(v2)
>>> ''
v1, ..., v4
在内部定义的assigner
函数仅在该函数中起作用,不会影响在该函数外部定义的函数。任何一个像样的IDE都将显示警告,这些局部变量会用相同的名称遮盖全局变量。
没有关系,但是该循环没有任何用处。
在这里使用函数是多余的,您只需解压缩列表即可:
v1, v2, v3, v4 = ['2', '7', '18', '3']
如果您坚持使用一个函数(或者如果您需要一个函数,即具有一些逻辑而不是简单地赋值),请确保使用return
该函数中的变量:
# no need to define v1, ..., v4 outside
def assigner(list_a):
v1 = list_a[0]
v2 = list_a[1]
v3 = list_a[2]
v4 = list_a[3]
# some magic logic
return v1, v2, v3, v4
v1, v2, v3, v4 = assigner(list_1)
有人会建议实际使用global
变量,但建议使用9/10倍。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句