如何re-run随机。在 child class in python 的实例化中?

How to re-run random. in the instantiation of a child class in python?

所以我试图在 parent class 中创建一个方法,该方法需要一个属性,该属性是介于(数字 a)和(数字 b)之间的随机整数,值为事先实例化。但是对于每个 child class 我想在不同的数字之间实例化一个不同的随机整数,比如(数字 c)和(数字 d)。它以不同的方式为每个 class 生成数字,但每次该方法为 classes 运行时,实例化的数字被保存为每个 class 的相同数字,而不是每个 re-randomizing。我希望它在每次调用该方法时随机化。

import random

class Parent:
  def __init__(self):
    self.random = random.randint(1, 10)

  def randomize(self):
     print(self.random)

class Child(Parent):
  def __init__(self):
    self.random = random.randint(11, 20)

a = Parent()
b = Child()

a.randomize()
a.randomize()
a.randomize()

b.randomize()
b.randomize()
b.randomize()

第一个输出:

9
9
9
15
15
15

第二个输出:

3
3
3
19
19
19

我希望每次调用该方法时随机化一个不同的数字,同时为每个 class 随机化的数字设置不同的范围。目标是不必 copy/past 每个 class 硬编码不同的 .randint 的方法。

查看@johnsharpe 的评论。您应该将下限和上限作为参数,然后在每次要随机化时调用 random.randint

import random

class Parent:
  def __init__(self, a=1, b=10):
    self.a = a
    self.b = b
    self.random = random.randint(self.a, self.b)

  def randomize(self):
    self.random = random.randint(self.a, self.b)
    print(self.random)

class Child(Parent):
  def __init__(self):
    super().__init__(11, 20)