我有一個大函數可以進行多次測量。在函數開始時從數據庫和文件中讀取參數列表。這些參數中的一些在某種程度上屬于一起(例如運動限制),其他的則是分開的。我不想將所有參數都放在一本字典中,即使只是為了挑戰它。為了使函數更緊湊、更簡潔,我會將所有參數的查詢放在一個單獨的函數中。但是,我不知道返回多個變量的最佳/正確方法。在搜索我的書籍和 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
提交
取消