Tkinter:如何将用户输入放入列表以供以后访问?

时间:2018-10-15 18:41:36

标签: python tkinter nonetype

当我尝试访问由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 :(得分:0)

尝试一下:

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