我有一个类,里面有几个函数。在file1中,我创建了该类的一个实例。你知道吗
class requestHandler():
def __init__(self):
......
def processRequest(self,command):
......
if __name__ == "__main__" :
currentHandler = requestHandler()
现在,我想从另一个文件访问这个'currentHandler'实例。我试过好几种方法,但都失败了。如果我这样做:
import file1
class adapter:
def __init__(self):
command = "move"
.......
def processRequest(self):
d = file1.requestHandler()
d.processRequest(command)
它创建了一个“requestHandler”类的新实例。但我不想那样。你知道吗
有人能在这方面帮助我吗?提前谢谢。你知道吗
可以将处理程序实例传递给适配器类
。。你知道吗
Python程序有两种基本风格:脚本-这是通过单击命令行运行的顶级程序,等等。。。以及导入的模块。python程序是一个名为
__main__
的脚本和任意数量的导入模块(通常以程序的文件名命名)。你知道吗您的file1.py可以是脚本或模块,具体取决于您如何运行它。但是,
if __name__ == "__main__"
语句告诉我们,只有当file1.py作为顶级脚本运行时,才会创建所需的对象。你知道吗现在我们有问题了。如果导入顶级脚本,则会得到脚本的第二个独立副本,并且在脚本中创建的内容在导入的版本中都不可用。你知道吗
那你怎么办?嗯,第一件事是退一步看看你的项目设计。通常,您应该将要共享的内容放在模块中,而不是脚本中。您不希望模块仅仅因为文件被导入就执行创建
requestHandler
之类的操作。但是工厂方法会很有效。你知道吗因此,创建一个模块(即,python路径中某个地方可见的python程序)
请求处理程序.py
现在,顶级脚本或任何其他molude都可以
要使用另一个脚本中的currentHandler
不得在以下条件下:
声明。它必须在if语句之外。你知道吗
示例:
文件1
控制台:
导入文件1
文件1.b.f()
4个
相关问题 更多 >
编程相关推荐