【发布时间】:2021-10-10 19:00:19
【问题描述】:
这可能是一个非常糟糕的例子,但我是 OOP 的新手,我试图在不再次调用 random.randint 的情况下获得我在 random_number 中创建的相同 self.number list。但是当我在class B 内部调用时,self.number 是空的,正确的方法是什么?
import random
class A:
def __init__(self):
self.number = []
def random_number(self):
for i in range(4):
self.number.append(random.randint(1, 100))
random.randint(1, 100)
print("from class A", self.number)
class B(A):
def __init__(self):
super().__init__()
# something here
def get_name(self):
A().random_number()
print("from class B", self.number)
B().get_name()
【问题讨论】:
-
和问题无关,但是为什么你的一行只有
random.randint(1, 100)? -
你是什么意思叫它再次?我只看到一个电话给
.random_number() -
只需将
A().random_number()更改为self.random_number()。问题是 A().random_number() 正在为新对象调用 random_number。 -
我不是 100% 清楚您要做什么,但似乎您可能希望
number成为类属性而不是实例属性。 -
这里有一个关于继承的有用教程:w3schools.com/python/python_inheritance.asp
标签: python python-3.x list oop