Как мне импортировать переменную вне моего класса? - PullRequest
0 голосов
/ 28 октября 2019

Простейший способ описать мою проблему:

У меня есть список, сгенерированный из отдельной функции вне моего основного класса. Мне нужно использовать этот же список в методе моего класса, но я не знаю, как импортировать список, чтобы использовать его в своем классе.

И отдельная функция, и класс находятся в одном и том жефайл, и я не могу вместо этого написать эту функцию в моем классе.

Как бы я мог использовать этот список в моем классе?

1 Ответ

2 голосов
/ 28 октября 2019

У вас есть несколько способов сделать это.

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. Каждый класс должен быть инициализирован массивом.
  2. Если массив изменяется снаружи, он изменяется внутри класса.
  3. Аналогично # 1, но массивне инициализируется с классом.

Правильное объектно-ориентированное программирование требует от вас выполнения №1, поскольку вы явно определяете переменные и контекст объектов. Он также создает предлог для написания функций, относящихся к передаваемым переменным внутри этого объекта.

...