Python 新手,并尝试放弃使用
global
关键字作为函数之间传递变量值的一部分。
我知道
return
返回一个元组 - 但我希望能够通过名称而不是通过索引来引用我正在调用的变量,并且在我学习的这个阶段我想避免上课。
这是一种可行的方法还是有更标准或“pythonic”的方法?似乎这需要包括被调用函数返回的所有变量?到目前为止 - 这是我发现的唯一一种在函数之间传递多个变量值的方法。
def myfunct_01():
my_var_01 = 1
my_var_02 = "stuff"
my_var_03 = (10 , 9 , 8)
return my_var_01, my_var_02, my_var_03
myfunct_01()
def myfunct_02():
my_var_01, my_var_02, my_var_03 = myfunct_01()
my_var_04 = my_var_01 + 1
my_var_05 = my_var_03[0] - my_var_03[1]
return my_var_04, my_var_05
myfunct_02()
您可以使用 python 字典将变量作为键来引用它们的名称。
def myfunct_01():
d1 = {}
d1['my_var_01'] = 1
d1['my_var_02'] = "stuff"
d1['my_var_03'] = (10 , 9 , 8)
return d1
myfunct_01()
def myfunct_02():
d1 = myfunct_01()
my_var_01 = d1['my_var_01']
my_var_02 = d1['my_var_02']
my_var_03 = d1['my_var_03']
d2 = {}
d2['my_var_04'] = my_var_01 + 1
d2['my_var_05'] = my_var_03[0] - my_var_03[1]
return d2
myfunct_02()
你可以使用解构赋值,这很简单:
first, second = (1,2)
print(fist, second)
# 1 2
所以在你的例子中你可以这样调用函数:
my_var_01, my_var_02, my_var_03 = myfunct_01()
您也可以解包列表中的部分项目。
first, *rest = (1,2,3,4)
print(first, *rest)
# 1 [2,3,4]