0
對於上下文,我對通常的類和Python非常陌生。如何調用調用類的屬性
我有Bot
類和BotSub
類
在Bot
我有事self.driver
,後來我打電話BotSub()
。如何撥打Bot
的self.driver
?
對於上下文,我對通常的類和Python非常陌生。如何調用調用類的屬性
我有Bot
類和BotSub
類
在Bot
我有事self.driver
,後來我打電話BotSub()
。如何撥打Bot
的self.driver
?
你必須傳遞給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()
...
我明白了。這就說得通了。當更新'Bot'上的'self'時,即使在第一個'init'ialization之後它會自動在'BotSub'上更新嗎? – Rob
是的,BotSub將擁有的是對活Bot對象的引用 - 其中的任何更改都將在botsub代碼中可見(因爲它將查看完全相同的對象) – jsbueno