0
私は文脈のために、一般的にクラスとPythonにはとても新しいです。呼び出すクラスのプロパティを呼び出す方法
私は何かself.driver
を持っている、と後で私がBotSub()
呼び出すクラスBot
とクラスBot
でBotSub
を持っています。 BotSub
から、Bot
さんのself.driver
さんへの連絡方法を教えてください。
私は文脈のために、一般的にクラスとPythonにはとても新しいです。呼び出すクラスのプロパティを呼び出す方法
私は何かself.driver
を持っている、と後で私がBotSub()
呼び出すクラスBot
とクラスBot
でBotSub
を持っています。 BotSub
から、Bot
さんのself.driver
さんへの連絡方法を教えてください。
あなたはBotSub
クラスに(self
引数である)Bot
オブジェクトへの参照を渡す必要があり、それが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オブジェクトへの参照があります。その中の変更は、ボットブスコード上で(正確に同じオブジェクトを参照するため)表示されます。 – jsbueno