Python:类中的子属性

标签 python class

这可能是一个愚蠢的问题,但我被困在这里了。在 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/

相关文章:

java - 错误: cant find main class

python - 生成 numpy 数组或随机分布的 0 和 1 的最快方法

python - 无法正确绑定(bind)多对多字段

Python 3.3内部嵌套While循环不输出

python - 功能建议中这些符号的含义是什么?

java - 使用类型输入创建对象

python - 将 '(-1,0)' 转换为元组 (-1, 0) 的最快方法?

java - 从命令行传递文件 Java

c++ - 指向成员的指针作为模板参数推导

c++ - 派生类特定函数,在重写的虚函数内,由基类指针调用