2010-08-11 75 views
2

我有一個模塊,包括Python中兩個不同類的定義。我如何使用一個類的對象作爲另一個類的參數?比方說,我有Driver和Car的類定義,並且Tuen想要一個Driver對象作爲Car對象的參數。Python:作爲另一個對象的參數的對象

+1

定義「論點」。函數有參數,類沒有。 – katrielalex 2010-08-11 08:47:46

+0

你可以發佈示例代碼嗎?目前還不清楚你爲什麼要說。 – 2010-08-11 09:24:22

回答

5

更新:op爲試圖通過在類定義時一個對象實例(或讓我覺得看到他的評論後)。以下答案不適用。

這是你想要實現的嗎?

class Car: 
    def __init__(self, driver): 
     self.driver = driver 

class Driver: 
    pass 

driver = Driver() 
car = Car(driver) 
+0

是的,這正是我想要做的:在類定義時間 – rize 2010-08-11 09:38:27

+0

傳遞一個對象實例啊。你能告訴我你是如何在類定義中使用該對象實例嗎?上面的註釋似乎在類*構造函數*中使用它,這沒有多大意義。發佈一些代碼會有幫助。 – 2010-08-11 10:17:44

1

創建一個Driver對象的實例並將其傳遞給Car的構造函數。

例如,

>>> d = Driver() 
>>> c = Car(d) 

或只是

>>> c = Car(Driver()) 

[編輯]

所以你想,你定義一個類使用一個驅動程序的實例?我仍然不確定自己理解你在做什麼,但聽起來像是某種裝飾者。

def OwnedCar(driver): 
    class Car(object): 
     owner = driver 
     #... 
    return Car 

steve = Driver() 
SteveCar = OwnedCar(steve) 
+0

我的問題是有點不清楚,我的意思是如何處理的對象參數的類定義: 類車: 高清__init __(自我,driverA) driverA.foo() driverA.bar() 不這項工作,還是我必須在類定義中定義驅動程序的類型? – rize 2010-08-11 09:21:32

+0

@rize在python中,你可以試試看看它是否有效。回答你的問題,不需要定義參數'DriverA'的類型。如果'DriverA.foo'和'DriverA.bar'存在,那麼就不會有錯誤。只要'Pilot.foo'和'Pilot.bar'存在並且按照你的意願做,你就可以通過'Pilot'。 – aaronasterling 2010-08-11 10:51:47

0

如果我明白你的問題,這將幫助你 假設我們有 類的BankAccount: 「」「構造之後,我們有另一種方法‘’」 高清傳輸(個體經營,數量,對象): #object是變量傳遞用於引用的對象 BankAccount.credit(個體,量) object.debit(量)

呼叫方法 BANK1 =的BankAccount() bank1.transfer(2000,對象名)

相關問題