2010-05-24 112 views

回答

2

您的意思是類tire或類tire的實例嗎?雖然後者可能更有用,它可以有兩種。如果你正在尋找一個對象Mary類的已經-A型對象Fred你想要的classinst多種分配:

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
>>> class Fred(object): pass 
... 
>>> class Mary(object): 
...  def __init__(self): 
...   self.classref = Fred 
...   self.classinst = Fred() 
... 
>>> x = Mary() 
>>> dir(x) 
[... 'classinst', 'classref'] 
>>> x.classref 
<class '__main__.Fred'> 
>>> x.classinst 
<__main__.Fred object at 0xb76eed0c> 
0

把握;類,就像任何其他的值,可以是類或實例屬性:

class A(object): 
    pass 

class B(object): 
    class_attr = A 

    def __init__(self): 
     self.instance_attr = A 

有了這個代碼,你可以使用B.class_attrB().instance_attr訪問A

0

是的。

>>> class tire: 
...  pass 
... 
>>> class car: 
...  def __init__(self, tire): 
...    self.tire = tire 
... 
>>> t = tire() 
>>> t.brand = 'Goodyear' 
>>> c = car(t) 
>>> c.tire.brand 
'Goodyear' 
0

您可以將實例和類都作爲類和實例的屬性 - 所有四個組合都可以正常工作(並且可以自由組合)。但是,請記住類別實例之間的區別 - 您對問題進行短語說明的方式表明存在一些混淆。無論如何,從字面上看你的問題:

可以稱爲汽車類有一個類 稱爲輪胎作爲屬性?

class tire(object): 
    ...class body here... 

class car(object): 
    thetire = tire 
    ...rest of class body here... 

一個tire = tire分配中的car身上是行不通的(命名混亂 - !),所以你需要比這就是它的價值類不同命名類屬性。 (這並不適用於例如屬性,因爲它們的語法,例如self.tire,是的合格名,而不是barenames,所以沒有命名混亂 - 只屬性)。這是否是導致你提出這個問題的問題的來源?

相關問題