关于python:如何设置一个在整个程序中有效的不断重新分配的随机变量?

How do I set a constantly reassigning random variable that works throughout the program?

我想创建一个名为random的变量,每次调用它时,它都在不断变化。

我想要这段代码:

1
2
3
4
Random = randint(0, 10)
print Random
print Random
print Random

不要给我这样的东西:

1
2
3
6
6
6

但更像是:

1
2
3
3
6
1

不用在每次使用之前重新分配随机文件。另外,我在几个不同的函数中使用了随机函数。那么,如何允许它在代码中的任何地方都使用,而不必每次都将其重新指定为随机变量呢?

抱歉,如果这是个愚蠢的问题,但我是个新手,我不知道我在做什么。请保持解释的简单。

编辑:这里还有一些代码:

定义一些东西1(随机的,无用的,随便什么)

等。。。

定义一些东西2(随机的,无用的,随便什么)

等。。。

主体:()

对于范围(800)中的索引:

1
2
3
 Random = randint(1, 10)

 something1(Random, useless, whatever)

随机=随机(1,10)

一些东西2(随机的,无用的,随便什么)

这会持续一段时间。


如果你说的确实是你想要的(即每次使用时都会给出随机值的变量),那么你并不真正想要一个变量。只需将EDOCX1的每个实例(0)替换为randint(0, 10)。或者,您可以自己创建功能:

1
2
def rand10():
    return randint(0, 10)

然后每次使用Random变量时,只需调用rand10()


在一个想法很糟糕的地方,你可以做你想做的,但是…既然我们在这里提出了一个非常糟糕的想法,我实际上不会写出代码,但我会告诉你怎么做,如果你想的话,你可以找到它……

  • 创建一个新模块,我们称之为Util
  • Util中编写一个类,我们称之为Crazy类。
  • 在类Util.Crazy中,创建一个名为Random的属性,该属性的getter返回一个随机值(使用禁止的任何界限)。
  • 在模块级创建一个名为CUtil.Crazy实例
  • 现在,您可以在任何需要新值的时候将其拼写为C.Random
  • 我没有多考虑过,但是我没有看到任何明显的方法来摆脱C.Random,仅仅称之为Random(如果你把Random分配给Crazy().Random,它只会坚持这个值,而不是绑定)。我敢肯定,对于globals(),您可以做一些真正可怕的事情,或者您可以使用原始描述符协议来做您想做的事情。


    Random只是一个整数类型,它包含由randint()生成的值。因为它是一个整数类型,所以它不能在每次调用时更改其值而不重新分配。

    您可以做的是定义一个类,这样当它被告知要打印时,它会返回一个不同的值:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from random import randint

    class Random:
       def __str__(self):
          return str(randint(1,10))

    random = Random()
    print(random)   # prints a value
    print(random)   # could print a different value
    print(random)   # could print a different value