[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