2011-06-12 31 views
3

有一個模塊car.py初始化名稱空間模塊中的類

有發動機和輪胎,我想他們(他們的方法和屬性)可訪問的

car.engine.data 
# and 
car.tires.data 

所以文件parts.py看起來

class engineClass(object): 
    def __init__(self): 
     self.data = 'foo data 1' 

class tiresClass(object): 
    def __init__(self): 
     self.data = 'foo data 2' 

engine = engineClass() 
tires = tiresClass() 

現在import car後我可以訪問他們,因爲我想 - car.engine.data

這是一個正確的事情做這項工作?

+1

...而那會是什麼任務? – 2011-06-12 04:18:38

+1

你使用這些類是爲了什麼?用於分隔'type1'和'type2'的 – Blender 2011-06-12 04:19:39

+0

。它們不同,但足夠接近一個模塊。 – Qiao 2011-06-12 04:21:52

回答

3

當然......我不太清楚你問什麼...

這沒有什麼錯,你在做什麼,但你可以跳過初始化的情況下類,您已經證明。只要做到:

class type1(object): 
    data = 'foo 1' 

class type2(object): 
    data = 'foo 2' 

無論是有道理的,你在做什麼,我不知道的情況下...

對於這個問題,你可以只是做

class Container(object): 
    pass 

type1, type2 = Container(), Container() 
type1.data = 'foo 1' 
type2.data = 'foo 2' 

或其他任何類似的東西......什麼是type1type2分別代表什麼?

+0

是的,那是我正在尋找的答案。我以爲你應該總是初始化實例。 – Qiao 2011-06-12 04:26:14

+1

如果你需要一個實例 - 創建它。但是你也可以使用這個類,它是一個對象(實例)本身。在上面的例子中,data是類的靜態變量(類屬性) – warvariuc 2011-06-12 16:15:57