如何仅使用函数的一个返回变量

Bre*_*ttJ 1 python function

这可能是一个愚蠢的问题,但我很难找到答案。

我正在使用 Flask/Python 并有一个名为“hero.py”的 .py 文件,其中包含一个 dict ex。

heroes = {'ironman': 'Strength, Covert', 'IronFist': 'Tech, Strenght'}

def hero():
    hero, attribute = random.choice(list(heroes.items()))
    if 'Tech' not in attribute:
        hero, attribute = random.choice(list(heroes.items()))
    if 'Tech' in attribute:
        return(hero, attribute)
Run Code Online (Sandbox Code Playgroud)

attribute我想知道当我调用函数时如何只使用变量?

我可以做类似的事情:

my_hero = hero()
print(my_hero)
Run Code Online (Sandbox Code Playgroud)

但如何只打印出该英雄的属性呢?希望这是有道理的吗?

dav*_*ing 5

当您有一个返回可索引数据(例如元组或列表)的函数时,您可以通过多种方式将包含的值集分配给变量:

def my_function():
    return ('a', 'b')
Run Code Online (Sandbox Code Playgroud)

您可以将返回值分配给单个变量:

example_1 = my_function()

>>> example_1
('a', 'b')
Run Code Online (Sandbox Code Playgroud)

或者您可以将其分配给多个变量,以匹配对象中值的数量:

example_2a, example_2b = my_function()

>>> example_2a
'a'

>>> example_2b
'b'
Run Code Online (Sandbox Code Playgroud)

如果您只需要其中一个值而不需要另一个值,则常见的形式是将不需要的值分配给_,这被认为是标准的一次性:

_, example_3 = my_function()
Run Code Online (Sandbox Code Playgroud)

即使您有大量值并且想要丢弃多个值,这也有效:

def my_next_function():
    return ('a', 'b', 'c', 'd', 'e')

_, example_4, _, _, _ = my_next_function()

>>> example_4
'b'
Run Code Online (Sandbox Code Playgroud)

当然,你也可以简单地进行位置分配,例如:

example_5 = my_function()[1]
Run Code Online (Sandbox Code Playgroud)

然而,我更喜欢这种_方法,因为我认为它使意图更清晰——也就是说,它明确地告诉读者你只关心一个值而不关心其他值。但对于每个人来说