在Python中创建和检索对象列表

时间:2010-08-25 10:07:59

标签: python

我想在一个脚本中保留对我创建的对象的引用,以便在另一个脚本中使用它们(不使用搁置)。

我想要接近:

脚本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,

3 个答案:

答案 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~