Why an object changes its "address" between adjacent calls?

Jim Lee jlee54 at gmail.com
Sun Jun 17 04:10:26 EDT 2018



On 06/17/2018 12:08 AM, Jach Fong wrote:
> C:\Python34\Doc>py
> Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 19:28:18) [MSC v.1600 
> 32 bit (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import tkinter as tk
> >>> root = tk.Tk()
> >>> tk.Label(root, text='label one', font='TkDefaultFont').pack()
> >>> from tkinter import font
> >>> font.nametofont('TkDefaultFont')
> <tkinter.font.Font object at 0x021E9490>
> >>> font.nametofont('TkDefaultFont')
> <tkinter.font.Font object at 0x021E9390>
> >>>
>
> The "address" of the Font object 'TkDefaultFont' changes, why?
>
> Best Regards,
> Jach Fong
>
>

def nametofont(name):
     """Given the name of a tk named font, returns a Font representation.
     """
     return Font(name=name, exists=True)

Every time you call nametofont(), you're creating a new instance of the 
Font class.

-Jim




More information about the Python-list mailing list