【发布时间】:2018-09-24 07:29:32
【问题描述】:
当我在 Python 中编写函数时,我通常需要向函数传递相当多的变量。此外,此类函数的输出包含多个变量。为了管理这些变量 I/O,我使用字典数据类型,将所有输入变量打包到字典中以注入函数,然后在函数末尾编译另一个字典以返回主程序。这当然需要对输出字典进行另一次解包。
dict_in = {'var1':var1,
'var2':var2,
'varn':varn}
def foo(dict_in):
var1 = dict_in['var1']
var2 = dict_in['var2']
varn = dict_in['varn']
""" my code """
dict_out = {'op1':op1,
'op2':op2,
'op_m':op_m}
return dict_out
随着变量列表的增加,我怀疑这将是一种处理变量 I/O 的低效方法。
有人可以建议一种更好、更有效且不易出错的方法吗?
【问题讨论】:
-
更好、更高效且不易出错的方法 --> pythonic方式
-
多个返回值需要打包成一个对象,但除非输入值非常密切相关,否则强制将它们分组到一个对象中只会使事情复杂化,并且在概念上不一定听起来。
-
@Carcigenicate Python 允许多个返回值无需打包...我没有关注您的评论。
-
@TemporalWolf 这只是隐式元组包装afaik。它只有 1 个返回值,一个返回恰好是一个包含多个元素的元组。
-
实际上,它甚至不是隐含的。从 dupe 目标的第二个答案来看,创建元组只需要一个逗号,所以我的示例只是显式创建一个元组然后返回它。
标签: python