如何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)
所以我试图在 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)