![](/img/trans.png)
[英]How to convert list [a, b, c] to python slice index[:a, :b :c]?
[英]Python: Class A Creates Instances of Classes B and C, how can B and C call functions in A or each other?
我有三個類需要放在單獨的文件中:A,B和C
A創建B和C。現在我需要B能夠告訴A它是時候對C進行操作了。該怎么做?
在我的特定情況下,我正在使用tkinter創建多個窗口,並且當某人單擊一個窗口中的按鈕時,我想切換到另一個窗口。 但是,由於python首先創建窗口很慢,因此我想預加載所有窗口,然后在它們之間進行切換,以保留屏幕管理器中的所有共享信息。
我嘗試了一些事情,對我來說最有前途的解決方案是創建另一個對象,該對象是A的父對象(例如P)。 現在,我可以將A傳遞到B和C中的函數中,然后再從B和C中傳遞,我可以調用A的函數。由於可以導入父級,而不必擔心循環導入,因此我可以告訴B和C定義了哪些函數A.盡管存在問題,似乎沒有辦法將一個對象從一個類轉換到另一個類,但很難弄清楚如何告訴B和C A是P類型的。
一般情況下,您對此有何想法或其他更好的解決方案?
您可以A
類似於self.A
的類A
的實例來初始化B
,將其設置為生成該B
的A
的實例,並使用它來調用影響C
A
中的函數。 一切就緒后,您從B
實例進行的調用應類似於: self.A.dosomethingwithC()
編寫示例代碼可以使其更容易解釋。
這是我的意思的示例:
File1.py:
from File2 import *
class A():
def __init__(self):
self.myB = B(self)
self.myC = C()
def doCthing(self):
self.myC.go()
someA = A()
someA.myB.doC()
File2.py
class B():
def __init__(self,myA):
self.myA = myA
def doC(self):
self.myA.doCthing()
class C():
def __init__(self):
pass
def go(self):
print("Made it")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.