gpt4 book ai didi

python - 将随机值分配给python程序中的参数

转载 作者:太空狗 更新时间:2023-10-30 00:22:03 26 4
gpt4 key购买 nike

我需要在 __init__() 中分配一个默认的随机值。例如:

import math
import random
class Test:
def __init__(self, r = random.randrange(0, math.pow(2,128)-1)):
self.r = r
print self.r

如果我创建 10 个 Test 实例,它们都会获得完全相同的随机值。我不明白为什么会这样。我知道我可以在 __init__() 中分配随机值,但我很好奇为什么会这样。我的第一个猜测是种子是当前时间,并且创建的对象靠得太近,因此得到相同的随机值。我创建的对象相隔 1 秒,但结果仍然相同。

最佳答案

默认参数的值是在创建函数时设置的,而不是在调用时设置的 - 这就是每次都相同的原因。

处理此问题的典型方法是将默认参数设置为 None 并使用 if 语句对其进行测试。

import math
import random
class Test:
def __init__(self, r = None):
if r is None:
r = random.randrange(0, math.pow(2,128)-1)
self.r = r
print self.r

关于python - 将随机值分配给python程序中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462784/

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