2014-03-12 2 views
1

내 클래스에 의해 전달 될 때 목록 gcb_ip 그 속성이 비어 :목록에 속성이있는 파이썬 객체. 객체가 매개 변수

class gcb_ip: 
    ip = None 
    country_code = None 
    score = None 
    asn = None 
    records = list() 

1) 나는 특정 방법으로 기록 목록을 입력합니다.

2) 내 기본 코드를 확인하면 객체 내부에서 레코드와 나머지 속성을 볼 수 있습니다.

3) 매개 변수로 전달 된 다른 클래스 메서드를 검사하면 개체가 레코드 내에 있지만 나머지 개체는 개체 안에 표시되지 않습니다.

저는 C++에서 왔습니다. 그리고 이것은 복사/참조 매개 전달 문제라고 생각합니다. 무슨 일이야?

+0

를 들어, 해당 개체의 매개 변수를 참조 할 수 있습니다? –

+0

"매개 변수 전달"이란 무엇을 의미합니까? 또한, http://stackoverflow.com/questions/1680528/how-do-i-avoid-having-python-class-data-shared-among-instances – user2357112

답변

0

init 함수가 제대로 정의되어 있고 해당 매개 변수가 설정되어 있습니까? 예를 들면

class gcb_ip(object): 
    def __init__(self, IP, country_code, score, asn): 
     self.IP = IP 
     self.country_code = country_code 
     self.score = score 
     self.asn = asn 
     self.records = list() 

이것은 명시 적 생성자를 C++로 설정하고 멤버 변수를 초기화하는 것과 같습니다. 사용자가 예상하는대로

그럼 당신이 * 비 작동 코드의 예 *를 쓸 수 예를

myIP = someGcbObject.IP 
+0

예, 저는 생성자를 정의하고 클래스가 작동합니다. 100 % 맞아. 클래스 인스턴스를 다른 클래스 메서드에 매개 변수를 통해 전달할 때 '레코드'목록이 비어있는 것처럼 보이지만 메서드 외부는 보이지 않습니다. – user3412296