有没有更简单的方法来解开元组?

时间:2017-11-15 15:49:06

标签: python

下面是我在RPG游戏中编写的一些代码示例,我一直在研究。赢得战斗后,统计数据将在level_up()函数中更新,并以列表的形式返回。 这提出了我的问题。有没有更好的方法来编写以下代码?

stats = level_up()
level = stats[0]
exp = stats[1]
exp_nextlev = stats[2]
health = stats[3]
defense = stats[4]
attack = stats[5]
speed = stats[6]

3 个答案:

答案 0 :(得分:5)

level, exp, exp_nextlev, health, defense, attack, speed = stats

答案 1 :(得分:2)

我会把它写成一个命名元组。

from collections import namedtuple

Stats = namedtuple('Stats', ['level', 'exp', 'exp_nextlev', 'health', 'defense', 'attack', 'speed'])

def level_up():
    # blah code blah
    return Stats(level, exp, exp_nextlev, health, defense, attack, speed)

stats = level_up()

然后你可以生锈参考

stats.exp
stats.health

答案 2 :(得分:2)

它不短,但在我看来更好的风格,只是从函数中返回这个{"level": ..., "exp":..., ...}这样的字典。当您稍后访问字典的值时,您的代码将与每个项目的不同变量一样可读。