[New-bugs-announce] [issue38371] Tkinter: deprecate the split() method
Serhiy Storchaka
report at bugs.python.org
Fri Oct 4 11:33:41 EDT 2019
New submission from Serhiy Storchaka <storchaka+cpython at 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 <report at bugs.python.org>
<https://bugs.python.org/issue38371>
_______________________________________
More information about the New-bugs-announce
mailing list