Search code examples
pythontkinterpython-3.2

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():
    root = Tk()
    txtTest2 = Entry(root)
    txtTest2.place(x=10, y=10)#difference is this line
    print(locals())
test1()
test2()

outputs contain:

'txtTest1': None

'txtTest2': <tkinter.Entry object at 0x00EADD70>

Why does test1 have a None instead of <tkinter.Entry object at ...?

I'm using python 3.2 and PyScripter.


Solution

  • The place method of Entry doesn't return a value. It acts in-place on an existing Entry variable.