我现在正在学习python,并将其解决了这个奇怪的问题。我在一个名为A的类中有一个数组,我将该数组用作队列..我想从类B和类C实时访问A类中的数组。例如,如果B类在A类中向该数组添加某些内容,我希望在从C类打印数组时看到C类中的更改
class a:
array = [1,2]
def return_array(self) :
return self.array
def add_to_array(val)
self.insert(val,0)
class b:
def b(self) :
d = a()
d.add_to_array(0)
ci=b()
b. b()
class c:
def __init__(self) :
cd = a()
print(cd.return_array()
#prints [] I want it to print [0,1,2]
c=c()
我希望它是实时的。因为其他班级必须看到那个
中发生了什么答案 0 :(得分:0)
您需要将代码修改为:
class a:
array = [1,2]
def return_array(self):
print(self.array)
def add_to_array(self, val):
a.array.insert(0,val)
class b(a):
pass
ab = b()
ab.add_to_array(0)
class c(a):
pass
ac = c()
ac.return_array()
<强>说明:强>
需要更改代码中的self.insert()
函数,以指定您在类中引用的数据成员。
此外,在Python中:
my_object.method("foo")
被解释为MyClass.method(my_object, "foo")
因此,在d.add_to_array(0)
中,您传递的是一个参数,而它希望您传递两个参数。