描述问题的最简单方法:
我有一个从主类之外的单独函数生成的列表。我需要在班级的方法中使用相同的列表,但我不知道如何导入该列表,因此可以在班级中使用它。
单独的函数和类都在同一个文件中,因此我无法在我的类中编写该函数。
如何在班级中使用此列表?
答案 0 :(得分:2)
您可以通过多种方式进行此操作。
class Test(object):
def __init__(self, array):
self.array = array
def func(self):
print(self.array)
array = [1, 2, 3]
t = Test(array)
t.func() # > [1, 2, 3]
class Test(object):
def func(self):
print(array)
array = [1, 2, 3]
t = Test()
t.func() # > [1, 2, 3]
class Test(object):
def func(self):
print(self.array)
array = [1, 2, 3]
t = Test()
t.array = array
t.func() # > [1, 2, 3]
所有这些都有缺点。
正确的面向对象编程要求您做#1,因为您明确定义了对象的变量和上下文。它还为您编写与该对象内的传递变量 相关的函数提供了借口。