0
문맥에서 나는 클래스와 파이썬에 대해 매우 익숙하다. 호출 클래스의 속성 호출 방법
나는 클래스Bot
및 클래스
BotSub
Bot
에서
뭔가 self.driver
을 가지고 있고, 나중에 내가 BotSub()
를 호출합니다. BotSub
에서 Bot
의 self.driver
으로 전화하는 방법은 무엇입니까?
문맥에서 나는 클래스와 파이썬에 대해 매우 익숙하다. 호출 클래스의 속성 호출 방법
나는 클래스Bot
및 클래스
BotSub
Bot
에서
뭔가 self.driver
을 가지고 있고, 나중에 내가 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 객체에 대한 참조입니다.이 객체의 변경 사항은 botsub 코드에서 즉시 볼 수 있습니다 (정확히 동일한 객체를 볼 수 있기 때문입니다) – jsbueno