我想在一个脚本中保留对我创建的对象的引用,以便在另一个脚本中使用它们(不使用搁置)。
我想要接近:
脚本1
class Porsche(Car):
""" class representing a Porsche """
def __init__(self, color):
self.color = color
class Porsche_Container:
# objects here
return objects
my_Porsche = Porsche(blue)
my_Porsche2 = Porsche(red)
SCRIPT2
for object in Porsche_Container:
print object.color
RGDS,
答案 0 :(得分:0)
执行此操作的最佳方法是显式构造要访问的对象集。可以列出例如在另一个脚本中定义的所有全局变量,但不是一个好主意。
script1
...
porsche_container = { myPorsche1, myPorsche2 }
script 2
import script1
for porsche in script1.porsche_container:
...
答案 1 :(得分:0)
这些脚本是否会在不同的进程中运行?如果不是,解决方案非常简单(参见katriealex的answer)。
如果他们要在不同的流程中运行,那么您将需要更复杂的解决方案,包括进程间通信。
答案 2 :(得分:0)
我假设你只想要一个过程。
使用import
,将一个“脚本”视为主module,将另一个“脚本”视为您导入的库模块。在我修改过的示例中, script2.py 是主模块, script1.py 是库。
<强> script1.py 强>
# -*- coding: utf-8 -*-
class Porsche(object):
""" class representing a Porsche """
def __init__(self, color):
self.color = color
BLUE = 1
RED = 2
def make_porsche_list():
return [Porsche(BLUE), Porsche(RED)]
<强> script2.py 强>
# -*- coding: utf-8 -*-
import script1
porsche_container = script1.make_porsche_list()
for object in porsche_container:
print object.color
<强>输出:强>
eike@lixie:~/Desktop/test> python script2.py
1
2
eike@lixie:~/Desktop/test> ls
script1.py script1.py~ script1.pyc script2.py script2.py~