У вас есть несколько способов сделать это.
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. Global Scope
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, но массивне инициализируется с классом.
Правильное объектно-ориентированное программирование требует от вас выполнения №1, поскольку вы явно определяете переменные и контекст объектов. Он также создает предлог для написания функций, относящихся к передаваемым переменным внутри этого объекта.