2022年 11月 6日

python函数返回两个参数_请问如何从Python中的函数返回两个值?

不能返回两个值,但可以返回tuple或者是list打完电话后打开它:def select_choice():

return i, card  # or [i, card]my_i, my_card = select_choice()

在线return i, card i, card意思是创建一个元组。您也可以使用括号,如return (i, card),但是元组是由逗号创建的,所以父母不是强制性的。但是,您可以使用Parens来提高代码的可读性,或者将元组拆分为多行。这同样适用于行。my_i, my_card = select_choice().

如果希望返回两个以上的值,请考虑使用命名元组..它将允许函数的调用者按名称访问返回值的字段,这是更易读的。仍然可以按索引访问元组的项。例如,在Schema.loads方法返回一个UnmarshalResult这是namedtuple..所以你可以:data, errors = MySchema.loads(request.json())if errors:

或result = MySchema.loads(request.json())if result.errors:

…else:

# use `result.data`

在其他情况下,您可以返回dict从你的职能:def select_choice():

return {‘i’: i, ‘card’: card, ‘other_field’: other_field, …}

但是,您可能需要考虑返回一个实用程序类的实例,该实例封装了您的数据:class ChoiceData():

def __init__(self, i, card, other_field, …):

# you can put here some validation logic

self.i = i

self.card = card

self.other_field = other_field        …def select_choice():

return ChoiceData(i, card, other_field, …)choice_data = select_choice()print(choice_data.i, choice_data.card)