Python, объявляющий массив / список статическим и глобальным - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь выучить Python.Я делаю небольшую программу, которая содержит некоторое число или строку в статическом массиве.Я хочу, чтобы моя функция содержала переменные в одном массиве.Но после того, как я закончил свою функцию, массив также исчез.Как я могу сделать мой массив статическим в Python?Я хочу изменить его в нескольких функциях.

py_ppl = []  

def Dong():

    alc1 = alc.get()
    alc2 = alc1
    alc1 = [0]

    py_ppl.append(alc1[0])
    py_ppl.append(alc2)

Я имею в виду нечто подобное.Я получаю Alc с Tkinter Gui.

1 Ответ

0 голосов
/ 03 июня 2018

Этот пример использования переменных класса может вам помочь.Переменные, объявленные в init, являются локальными для каждого экземпляра класса, а переменные, объявленные в верхней части класса, являются глобальными для всех экземпляров класса.

class funkBox:
    globalToBox = [] # our class variable
    def __init__(self):
        pass         # our do nothing constructor
    def funk(self,elm): # our function 
        self.globalToBox.append(elm)
    def show(self):     # for demonstration
        print(self.globalToBox)

a = funkBox() #create one instance of your function holder
b = funkBox() #and another
a.funk("a")   #call the function on the first instance
b.funk("b")   # call the function again 
a.show()      # show what instance a has 
b.show()      # and b

Печать

['a', 'b']
['a', 'b']
...