提问人:formerlolz 提问时间:4/4/2023 最后编辑:formerlolz 更新时间:4/5/2023 访问量:74
Python - 如何从返回多个变量值的不同函数访问分配给一个函数中变量的值
Python - how to access values assigned to variables in one function from a different function that returns multiple variable values
问:
不熟悉 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()
答:
0赞
rajkumar_data
4/5/2023
#1
您可以使用 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()
0赞
Coder Cat
4/5/2023
#2
您可以使用解构赋值,这非常简单:
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]
评论
my_var_01, my_var_02, my_var_03 = ...
my_funct_01
my_var_02
_
myfunct_01()
myfunct_02
my_var_01, my_var_02, my_var_03 = myfunct_01()
my_var_01
my_var_02
my_var_03
myfunct_02
myfunct_02()