從Python 函數中高效提取多個值
在Python 中,將函數中的多個值檢索到不同的變數中可能是一項操作挑戰。雖然直接傳回多個值(例如 return i、card)看起來很直觀,但這種方法會產生一個與所需結果不相符的元組。
返回元組並解包
要克服這個障礙,請考慮回傳一個可以在函數呼叫後解包的元組或列表。這可以使用以下語法來實現:
def select_choice(): ... return i, card # or [i, card]
隨後,使用解包將傳回的值分配給單獨的變數:
my_i, my_card = select_choice()
此方法可以提取多個值,但是它可能不是最優雅或可讀的解決方案。此外,返回元組可能會限制未來重構的靈活性。
替代方法
在某些情況下,其他方法可能會提供更大的靈活性和可讀性。
命名元組:
回傳一個命名元組提供了一種更結構化和可讀的替代方案。它允許呼叫者按名稱存取特定字段,增強程式碼理解。
from collections import namedtuple ChoiceData = namedtuple('ChoiceData', ['i', 'card', 'other_field']) def select_choice(): ... return ChoiceData(i, card, other_field)
字典回傳:
另一個選項是傳回一個字典,指派 key-與所需值的值對。
def select_choice(): ... return {'i': i, 'card': card, 'other_field': other_field}
自訂實用程式類別:
在更複雜的場景中,傳回自訂實用程式類別的實例可以提供模組化和可擴展的解決方案。
class ChoiceData: def __init__(self, i, card, other_field): # Implement initialization logic and ensure data integrity ... def select_choice(): ... return ChoiceData(i, card, other_field)
這種方法利用物件導向的程式設計原理更強的封裝和資料驗證能力。
以上是如何有效率地從Python函數中提取多個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!