Python新手的一个问题

写一个登陆的界面,账号密码对了就会出现一个标签,但是e2['show']='*' ,这句话报错,错误的提示是TypeError: 'NoneType' object does not support item assignment

贴出代码如下

-*- coding:utf-8 -*-

from Tkinter import *

def reg():
s1=e1.get()
s2=e2.get()
t1=len(s1)
t2=len(s2)
if s1=="1111" and s2=="2222":
c["text"]="登陆成功"
else:
c["text"]="登陆失败"
e1.delete(0,t1)
e2.delete(0,t2)

root= Tk()
root.wm_title("登陆界面")
l=Label(root,text="用户名: ")
l.grid(row=0,column=0,sticky=W)

e1=Entry(root)
e1.grid(row=0,column=1,sticky=E)

l2=Label(root,text="密码: ").grid(row=1,column=0,sticky=W)
e2=Entry(root).grid(row=1,column=1,sticky=E)
e2["show"] = '*'

b=Button(root,text="登陆",command=reg).grid(row=2,column=1,sticky=E)

c=Label(root,text=" ")
c.grid(row=3)
root.mainloop()

e2["show"]
这个show在哪里写的。

e2=Entry(root).grid(row=1,column=1,sticky=E)
e2["show"] = '*'

这个e2是一个列表或者元组的对象吗
如果你的e2是一个元组对象,你这里写的估计就是得到了一个元组对象
那么元组对象的值是不能被重新赋值的。
比如你可以试验下 e = (1,2,3)
使用 e[0] = 4
你看看会报和你一样的错误信息的。

若有帮助还请采纳

提示None Type,应该是你的e2赋值的时候,你的e2是None,而你上边的赋值应该是dict之类的,赋值前打印下e2看看

e2应该是不可变对象的。。。

你这样粘贴代码没诚意啊- -!

 #-*- coding:utf-8 -*-
from Tkinter import *
def reg():
    s1=e1.get()
    s2=e2.get()
    t1=len(s1)
    t2=len(s2)
    if s1=="1111" and s2=="2222":
        c["text"]="登陆成功"
    else:
        c["text"]="登陆失败"
    e1.delete(0,t1)
    e2.delete(0,t2)

root= Tk()
root.wm_title("登陆界面")
l=Label(root,text="用户名: ")
l.grid(row=0,column=0,sticky=W)
e1=Entry(root)
e1.grid(row=0,column=1,sticky=E)
l2=Label(root,text="密码: ").grid(row=1,column=0,sticky=W)
e2=Entry(root)
e2["show"] = '*'
e2.grid(row=1,column=1,sticky=E)
b=Button(root,text="登陆",command=reg).grid(row=2,column=1,sticky=E)
c=Label(root,text=" ")
c.grid(row=3)
root.mainloop()

e2=Entry(root).grid(row=1,column=1,sticky=E)
e2["show"] = '*'
这里错了,show属性是Entry()对象的,而不是Entry().grid()对象的

亲测有效,望采纳- -