我有一个大函数可以进行多次测量。在函数开始时从数据库和文件中读取参数列表。这些参数中的一些在某种程度上属于一起(例如运动限制),其他的则是分开的。我不想将所有参数都放在一本字典中,即使只是为了挑战它。为了使函数更紧凑、更简洁,我会将所有参数的查询放在一个单独的函数中。但是,我不知道返回多个变量的最佳/正确方法。在搜索我的书籍和 Stack Overflow 时,我找到了以下选项:我可以返回一个包含所有变量的字典,但想知道是否还有另一种方法。全局变量:由于我不在其他地方使用参数,这似乎是不好的做法。返回一个变量元组,但它们不会被命名。我在 Stack Overflow 上找到的大多数答案都建议创建一个类。这会将我的函数变成一个类。所以我想知道,这是否被认为是好的做法:为可以在一个函数中完成的事情创建一个类(只有两个函数)?
3 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
返回一个元组;在您的调用函数中,您可以使用隐式元组解包
top_limit, bottom_limit, another_value = the_query_function()
在被调用的函数中:
return top_limit, bottom_limit, another_value
非常干净和简单,没有样板
或者你可以像你说的那样使用一个类,这真的取决于手头工作的复杂性
编辑:如果代码从使用类中获利,那么一旦任务 imo 使用作业进行调用就不错了
catspeake
TA贡献1111条经验 获得超0个赞
另一种选择是使用嵌套dicts 按某些标准对参数进行分组。
例如:
d = {
'movement_limits': {
'top': 5,
'bottom': 1,
},
'window_size': {
'height': 10,
'width': 10,
},
'num_players': 9,
}
并像这样访问它:
print(d['window_size']['height'])
print(d['movement_limits']['top'])
这几乎没有开销(不是整个类)并且仍然具有一定的可读性。
添加回答
举报
0/150
提交
取消