创建一个可以从多个类访问的列表

时间:2019-05-30 17:31:02

标签: python-3.x

我正在尝试创建一个在一个类中填充并在另一个类中读取的列表。我有很多事情,现在我收到下面显示的错误。我只显示一个读取列表的类,但还会有其他类。
我该怎么做?

ReadDatabase.py

class ReadDatabase(object):

    f_type_list = ReadDatabase.getFTypes() ## 'ReadDatabase' not defined

    @staticmethod
    def getFTypes():
        <reads from database>
        return my_list

MyTreeView.py

from ReadDatabase import *
class MyTreeView (ttk.Treeview):

    def __init__(self,  frame=None, list=[], column_headers=[]):
        for f_type in ReadDatabase.f_type_list:
           <do stuff> 

1 个答案:

答案 0 :(得分:1)

您可以通过两种不同的方式将其分为两个不同的类。

示例1:使用两个类,一个类(A)创建并更新列表,另一个类(B)创建{{1}的实例}并对其进行控制:

A


示例2:您可以在类class A: """ Create and updates the list """ def __init__(self): self.my_list = [] self._read_from_database() def _read_from_database(self): # some database update logic self.my_list.append(3) class B: """ Creates an instance of A and can read from it. """ def __init__(self): self.a = A() def print_list(self): for index, element in enumerate(self.a.my_list): print(f"Index: {index} Element: {element}") b_object = B() b_object.print_list() # Prints: Index: 0 Element: 3 中创建一个方法,并将其从类B中的lst传递给它:

A

如果您想这样做,也可以将class A: """ Create and updates the list """ def __init__(self): self.my_list = [] self._read_from_database() def _read_from_database(self): # some database update logic self.my_list.append(3) class B: def __init__(self): pass def print_list(self, lst): for index, element in enumerate(lst): print(f"Index: {index} Element: {element}") a_object = A() b_object = B() b_object.print_list(a_object.my_list) 的整个实例传递给A以供使用。

相关问题