这可能是一个愚蠢的问题,但我被困在这里了。在 Python 中,我创建了一个 Match 类,其中包含一些属性,如 my_match.goals、my_match.yellow_cards 等。 我希望每场比赛都具有一些相同的属性,但仅限于比赛的上半场。 理想情况下,我的第一个想法是一种子属性,例如
my_match.half_time.goals
但这当然行不通。
我的问题是:对于这种必要性来说,最好的数据结构是什么?我将如何实现它?我认为子类不是一个好主意,因为我希望同一个实例能够描述半场和全场。 谢谢!
最佳答案
为了避免使用或创建另一个类,您可以使用namedtuples
对象。可以使用像变量引用这样的对象或标准元组语法来引用命名元组实例。
from collections import namedtuple
HalfTime = namedtuple('Halftime', 'goals yellow_cards')
my_match.half_time = HalfTime(4, 5)
my_match.half_time.goals
>>> 4
my_match.half_time.yellow_cards
>>> 5
如果您想更新您的值(value)观
my_match.half_time = my_match.half_time._replace(goals=10)
关于Python:类中的子属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39310436/