【问题标题】:How to access an array located in class a from class b realtime如何从 b 类实时访问位于 a 类中的数组
【发布时间】:2017-09-29 11:22:29
【问题描述】:

我现在正在学习 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() 

我希望它是实时的。因为其他班级必须看到其中发生了什么

【问题讨论】:

  • 输入?期望的输出?代码?
  • 更新@schwobaseggl

标签: python computer-science


【解决方案1】:

您需要将代码修改为:

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) 中,您传递的是一个参数,而它希望您传递两个参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多