2017-09-29 2 views
0

저는 지금 파이썬을 배우고 있으며,이 이상한 문제에 빠지게되었습니다. 나는 A라는 클래스에 배열을 가지고 있는데 그 배열을 대기열로 사용하고 있습니다. 클래스 B와 클래스 C에서 클래스 A의 배열에 실시간으로 액세스하려고합니다. 예를 들어, 클래스 B는 내가 내가 실시간으로 원하는 클래스 C클래스 b에서 실시간으로 배열에있는 배열에 액세스하는 방법

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() 

에서 배열을 인쇄 할 때 클래스 C에서 그 변화를보고 싶어 클래스 A에 해당 배열에 무언가를 추가하는 경우.

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() 기능이 지정 변경해야하는 데이터 멤버를 다른 클래스는 당신이 당신의 코드를 수정해야하는

+1

입력 하시겠습니까? 원하는 출력? 암호? – schwobaseggl

+1

@schwobaseggl 업데이트 됨 – user2967888

답변

0

에서 무슨 일이 일어나고 있는지 볼 수 있기 때문에 당신은 수업에서 말하는 것입니다. 파이썬에서 또한

: my_object.method("foo")은 당신이 두 개의 매개 변수를 전달할 것으로 예상하는 반면 d.add_to_array(0) 당신이 하나 개의 매개 변수를 전달하는, 따라서 MyClass.method(my_object, "foo") 로 해석됩니다.