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

sales at caprilion.com.tw sales at caprilion.com.tw
Sun Jun 17 05:39:42 EDT 2018


Jim Lee at 2018/6/17 PM 04:10 wrote:
> 
> 
> 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.

     hmm... It means every time I set a widget's font to 
"TkDefaultFont", a new object was created. Why python do things this 
way? Can't it use
this same object again and again?

--Jach

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus




More information about the Python-list mailing list