如何从班级外部导入变量?

时间:2019-10-28 16:23:10

标签: python class oop variables

描述问题的最简单方法:

我有一个从主类之外的单独函数生成的列表。我需要在班级的方法中使用相同的列表,但我不知道如何导入该列表,因此可以在班级中使用它。

单独的函数和类都在同一个文件中,因此我无法在我的类中编写该函数。

如何在班级中使用此列表?

1 个答案:

答案 0 :(得分:2)

您可以通过多种方式进行此操作。

1。用您的列表初始化课程。

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]

2。全球范围

class Test(object):
    def func(self):
        print(array)


array = [1, 2, 3]
t = Test()
t.func() # > [1, 2, 3]

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. 每个类都必须使用数组初始化。
  2. 如果数组在外部被修改,则在类内部被修改。
  3. 类似于#1,但未使用该类初始化array。

正确的面向对象编程要求您做#1,因为您明确定义了对象的变量和上下文。它还为您编写与该对象内的传递变量 相关的函数提供了借口。