Why Is `none` Returned Instead Of Tkinter.entry Object?
I'm new to python, poking around and I noticed this: from tkinter import * def test1(): root = Tk() txtTest1 = Entry(root).place(x=10, y=10) print(locals()) def test2()
Solution 1:
The place
method of Entry
doesn't return a value. It acts in-place on an existing Entry variable.
Solution 2:
because Entry.place() returns None
in a more C-like language you could do:
(txtTest1 = Entry(root)).place(x=10, y=10)
and txtText1 would be the Entry object, but that syntax is illegal in Python.
Solution 3:
You are creating an object (txtTest1
) and then calling a method on that object (place
). Because you code that as one expression, the result of the final method is what gets returned. place
returns None
, so txtTest1
gets set to None
If you want to save a reference to a widget you need to separate the creation from the layout (which is a Good Thing To Do anyway...)
txtTest1 = Entry(root)
txtTest1.place(x=10, y=10)
Post a Comment for "Why Is `none` Returned Instead Of Tkinter.entry Object?"