Jach Fong wrote: > Is it possible to call a class but without a new instance created?
Yes, this is possible in Python, by writing a custom __new__ method. An extreme example: >>> class Three: ... def __new__(*args): return 3 ... >>> a = Three() >>> b = Three() >>> a 3 >>> b 3 >>> a is b True But this is not what is done with the tkinter Font class. Most tkinter classes refer to a tcl/tk object and so does Font. import tkinter as tk from tkinter.font import Font root = tk.Tk() a = Font(root, name="foo", size=10, exists=False) label = tk.Label(root, text="hello", font=a) label.pack() def update_foo(): b = Font(root, name="foo", size=20, exists=True) # two distinct Font objects referring to the same underlying tcl font. assert a is not b button = tk.Button(root, text="update foo font to 20pt", command=update_foo) button.pack() root.mainloop() Here the b = Font(...) creates another wrapper for the "foo" font and updates its size in the process so that the label's appearance is updated, too. -- https://mail.python.org/mailman/listinfo/python-list