在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循环已经运行。
答案 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