On 5/18/2023 9:13 AM, Grant Edwards wrote:
On 2023-05-12, Rob Cliffe via Python-list <python-list@python.org> wrote:

Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32
bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
import tkinter
tkinter.messagebox
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
AttributeError: module 'tkinter' has no attribute 'messagebox'


$ python
Python 3.11.3 (main, May  8 2023, 09:00:54) [GCC 12.2.1 20230428] on linux
Type "help", "copyright", "credits" or "license" for more information.
import tkinter
from tkinter import messagebox
messagebox
<module 'tkinter.messagebox' from '/usr/lib/python3.11/tkinter/messagebox.py'>



Why is this?

Dunno.

tkinter is a package, messagebox is a module within the tkinter package. the messagebox module has some functions, such as showinfo(). You *can* import those functions using "dot" expressions:

>>> from tkinter.messagebox import showinfo
<function showinfo at 0x0000021CED0634C0>

You can also import the entire module using the "dot" syntax:

>>> import tkinter.messagebox
>>> messagebox.showinfo
<function showinfo at 0x0000021CED0634C0>

Whether you can directly ask for tkinter.messagebox depends on whether it's been defined or imported in tkinter/__init__.py.



--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to