如何阅读位于另一个班级中的列表?

时间:2015-05-27 12:00:37

标签: python

在Python中,我有一个for循环,它调用一个类,后者又调用另一个类,依此类推,类操作数据,执行sql插入等。最后一个类包含所有文件的列表已创建。我想从课外访问此列表,但我无法理解如何!

(我知道还有一个循环问题 - 将在下面解释更多!)

一个基本的例子是:

#A class to create the list
class Create_list():
    def list(self,j):
        l=j+1
        #pass this variable to another class, get_list
        Get_list().input(l)

#class get_list receives the number from create_list and appends it to mylist
class Get_list():
    def input(self,l):
        mylist=[]
        mylist.append(l)    
        #print mylist

# loop through a list of numbers and feed them into the create_list class
j=10
for k in range(j):
    Create_list().list(k)

#I want to access the list here. I have tried all of the below
readlist=Get_list().input().mylist # with ()
readlist=Get_list.input.mylist # without ()
x=Create_list() # create an object with class name
mylist=x.list().mylist #use above object

我已尝试过最后一段代码中的所有方法。

我不能使用前两个,因为函数列表需要一个输入,它来自前面的类。 (错误说list()需要两个参数,只提供一个参数(我自己假设)。

我尝试将类分配给对象,但这也不起作用。

我意识到for循环意味着如果我要在mylist内打印def input,那么只有该j值的值。

我基本上希望访问mylist,其中包含l中所有值的值列表j,之后for循环已经运行。

3 个答案:

答案 0 :(得分:5)

这里有很多错误,所以我只想说明一个简单的方法:

class Create_list(object):
    def __init__(self):
        self.list = []


    def input_list(self, x):
        l = x + 1
        self.list.append(l)

j=10
cl = Create_list()
for k in xrange(j):
    cl.input_list(k)

print cl.list

答案 1 :(得分:1)

另一种可能性是return列表:

def add_one_to(j):
    l=j+1
    return(l)

def store(mylist, l):
    mylist.append(l)
    return(mylist)

用法:

>>> mylist = []
>>> myintegerplusone = add_one_to(1)
>>> store(mylist, myintegerplusone)
>>> print(mylist)
[2]

在这种情况下,你可以想象一个作为工匠的功能,你给他一些东西来修理/操纵,然后他将固定/操纵的物品还给你。

答案 2 :(得分:0)

我认为你想要的是使用“self”方法在列表对象中存储,然后从外部访问它。

试试这段代码:

class CreateList():
    def __init__(self):
        self.list = []

if __name__ == "__main__":
    c = CreateList()
    c.list.append(4)
    print c.list