gpt4 book ai didi

python - 让类内的类进行交流

转载 作者:行者123 更新时间:2023-11-28 21:53:32 25 4
gpt4 key购买 nike

我从 JavaScript 转到 Python,遇到了一个我无法解决的问题。

我有一个这样的主 Controller :

from TVcontroller import TVController

class MainController(object):
def __init__(self):
self.TVControllers = []
self.TVControllers.append(TVController("VardagsrumsTV"))
self.TVControllers.append(TVController("Köks TV"))
print("Welcome to the TV-simulator")

...

它从以下位置创建新的 TVController 实例:

from TV import TV

class TVController(object):

def __init__(self, name):
self.TV = TV(name)

def exit(self):
#I WANT TO INVOKE A FUNCTION ON MY PARENT!

...

我希望我的 TVController 能够在退出时通知 MainController。在 JavaScript 中,我只会编写一些 "on,event, do-this" 函数。这在 Python 中是如何处理的?

最佳答案

一个选择是让 TVController 持有对其 master 的引用(我会避免使用术语 parent,因为这通常暗示继承)MainController实例:

class TVController(object):

def __init__(self, name, master=None):
self.TV = TV(name)
self.master = master

def exit(self):
if self.master is not None:
self.master.... # whatever

然后像这样创建它们:

class MainController(object):

def __init__(self):
self.TVControllers = []
self.TVControllers.append(TVController("VardagsrumsTV", self))
self.TVControllers.append(TVController("Köks TV", self))
print("Welcome to the TV-simulator")

关于python - 让类内的类进行交流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25997307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com