Tkinter: Как поместить пользовательский ввод в список для доступа позже? - PullRequest
0 голосов
/ 15 октября 2018

Когда я пытаюсь получить доступ к списку, созданному функцией stringToList, он всегда говорит TypeError: объект 'NoneType' не может быть подписан.

class MyApp(Tk):
    def __init__(self):
        super().__init__()
        # Many widgets defined and placed here
    def my_fx(self):
        def stringToList(input_str):
            number_list = []
            full_list = []
            if list(input_str)[-1].isnumeric:
                input_str += ","

            for item in list(input_str):
                if item.isnumeric():
                    number_list.append(item)
                if not item.isnumeric():
                    num_str = ""
                    for item in number_list:
                        num_str += item
                    if int(num_str) not in full_list:
                        try:
                            full_list.append(int(num_str))
                        except ValueError:
                            pass
                    number_list = []
            sorted_list = sorted(full_list).append(some_string)
            return sorted_list
        if True:
            sorted_list = stringToList(some_entry_widget.get())

        def do_stuff():
            from my_other_file import my_other_fx
            this_and_that = my_other_fx(sorted_list)

    # More functions defined here

if __name__ == '__main__':
    app = IntegratorApp()
    app.mainloop()

Эта строка в my_other_fx (которая правильно названа в моем оригиналекод), где я получаю NoneType не является ошибкой подписки:

if sorted_list[-1] == some_value:

Я попытался переработать stringToList, чтобы он использовал IntVar и StringVar вместо обычных int и str, но это ничего не изменило.Почему это NoneType?Также, если у кого-то есть другая критика, это более чем приветствуется!Я пытаюсь научиться!

РЕДАКТИРОВАТЬ: Кажется, что "Нет" и превращается в NoneType, когда я пытаюсь добавить строку в список.Но почему ??

1 Ответ

0 голосов
/ 16 октября 2018

Попробуйте это:

full_list.append(some_string)
sorted_list = sorted(full_list)
...