Learning tkinter

Thomas Passin list1 at tompassin.net
Thu May 18 11:48:29 EDT 2023


On 5/18/2023 9:13 AM, Grant Edwards wrote:
> On 2023-05-12, Rob Cliffe via Python-list <python-list at 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.





More information about the Python-list mailing list