New submission from Serhiy Storchaka <storchaka+cpyt...@gmail.com>:
The tkapp.split() method has weird behavior. It splits a string recursively, so the type of items and the depth of nesting depends on spaces in string values. For example: >>> import tkinter >>> root = tkinter.Tcl() >>> root.tk.split('Hi') 'Hi' >>> root.tk.split('Hello "Good bye"') ('Hello', ('Good', 'bye')) It may work as you meant in some cases (if items at the same level either all have spaces or all do not have spaces), but return unexpected result for untested cases. It is more robust to use the tkapp.splitlist() method, which split exactly one level and always returns a tuple of strings. It can be used recursively if you need nested lists. >>> root.tk.splitlist('Hi') ('Hi',) >>> root.tk.splitlist('Hello "Good bye"') ('Hello', 'Good bye') >>> [root.tk.splitlist(x) for x in root.tk.splitlist('Hello "Good bye"')] [('Hello',), ('Good', 'bye')] ---------- components: Tkinter messages: 353948 nosy: serhiy.storchaka priority: normal severity: normal status: open title: Tkinter: deprecate the split() method versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38371> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com