Python Tornado: переменные экземпляра не сохраняются из метода в другой - PullRequest
0 голосов
/ 03 мая 2018

Я немного борюсь с переменными экземпляра в Tornado. Мой код ниже:

def initialize(self):
    self.needed_file = []

def put(self):
    try:
        if something:
            self.needed_file.append('Ninja file')
            self.needed_file.append(dico_data[0][1].decode('utf-8'))
            print(self.needed_file)
    except IndexError:
        pass   

def get(self):
    try:
        print('//' + str(self.needed_file) + '//')
    except AttributeError:
        print('{}'.format(ServerHandler.needed_file))

Мне не удается вывести значение self.needed_file из put(self) to get(self), интерпретатор дает мне эту трассировку.

['Ninja file', '/Users/corpo/DistributedBuild/]` <----------- print() from put
[I 180503 10:01:59 web:2106] 200 PUT / (::1) 11.87ms
//[]// <--------- print() from get
[E 180503 10:01:59 web:1621] Uncaught exception GET / (192.168.1.189)

И, конечно, неперехваченное выражение - исключение ошибки индекса, потому что я прошу дать мне значение в списке, которого у него нет.

Спасибо!

1 Ответ

0 голосов
/ 03 мая 2018

Определить переменную экземпляра как часть класса

class Test():

    needed_file = []

    def put(self):
        print("put")
        self.needed_file.append('Ninja file')

    def get(self):
        print("get")
        print(self.needed_file)
...