因此,我试图在父类中创建一个方法,该方法需要一个介于(数字a(和(数字b(之间的随机整数属性,该值在手之前实例化。但对于每个子类,我想实例化一个不同数字之间的不同随机整数,比如(数字c(和(数字d(。它为每个类生成不同的数字,但每次为类运行该方法时,实例化的数字都会保存为每个类的相同数字,而不会每次重新随机化。我希望它在每次调用该方法时随机化。
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
我希望每次调用该方法时都随机化一个不同的数字,同时对每个类具有不同的随机化范围。目标是不必将方法复制/通过每个类一个不同的.中硬编码的.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)