这可能是一个愚蠢的问题,但我很难找到答案。
我正在使用 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)
但如何只打印出该英雄的属性呢?希望这是有道理的吗?
当您有一个返回可索引数据(例如元组或列表)的函数时,您可以通过多种方式将包含的值集分配给变量:
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)
然而,我更喜欢这种_方法,因为我认为它使意图更清晰——也就是说,它明确地告诉读者你只关心一个值而不关心其他值。但对于每个人来说