2016-12-31 89 views
0

對於上下文,我對通常的類和Python非常陌生。如何調用調用類的屬性

我有Bot類和BotSub

Bot我有事self.driver,後來我打電話BotSub()。如何撥打Botself.driver

回答

1

你必須傳遞給Bot對象(這是self參數)一個參考BotSub類,並且它必須使用回叫Bot對象的方法。

例如:

class Bot(object): 
    def __init__(self): 
     self.botsub = BotSub(self) 

    def driver(self): 
     ... 

    def update(self): 
     self.botsub.dothings() 

class BotSub(object): 
    def __init__(self, bot): 
     self.bot = bot 

    def dothing(self): 
     self.bot.driver() 

或者,你並不需要保存父博特實例作爲對BotSub屬性 - 只是把它作爲當你調用它的方法,這將需要一個參數參考機器人:

... 
class Bot(object): 
    ... 
    def update(self): 
     self.botsub.dothings(self) 

class BotSub(object): 
    ... 
    def dothings(self, bot): 
     bot.driver() 
     ... 
+0

我明白了。這就說得通了。當更新'Bot'上的'self'時,即使在第一個'init'ialization之後它會自動在'BotSub'上更新嗎? – Rob

+0

是的,BotSub將擁有的是對活Bot對象的引用 - 其中的任何更改都將在botsub代碼中可見(因爲它將查看完全相同的對象) – jsbueno