gpt4 book ai didi

python - 具有随机属性值的数据类的构造函数

转载 作者:行者123 更新时间:2023-12-05 09:25:51 24 4
gpt4 key购买 nike

嗨,有人能解释一下这里发生了什么吗:我想用随机值实例化对象。

@dataclass
class Particle:
pos = (random.randint(0, 800), random.randint(0, 800))

for _ in range(3):
p = Particle()
print(p.pos)

打印:

  • (123, 586)
  • (123, 586)
  • (123, 586)

预期行为将是具有不同值的三个元组。这里发生了什么??

(当我使用普通类时,它按预期工作)

最佳答案

您只在类定义时创建了一次随机整数。你想要的是你的值(value)的默认工厂。

参见 https://docs.python.org/3/library/dataclasses.html#dataclasses.field了解更多详情。

例子:

def rndints():
return (random.randint(0, 800), random.randint(0, 800))

@dataclass
class Particle:
pos = field(default_factory=rndints)

关于python - 具有随机属性值的数据类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75017330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com