2010-05-24 72 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,所以没有命名混乱 - 只属性)。这是否是导致你提出这个问题的问题的来源?

相关问题