2014-03-12 82 views
1

我的班級傳遞的列表是空的gcb_ip具有這些屬性:帶有列表屬性的Python對象。當對象由參數

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%正確。只是當我通過參數傳遞一個類實例到另一個類方法中時,'records'列表看起來是空的,但是在這個方法之外不是。 – user3412296

相關問題