lzb1001 发表于 2022-5-21 14:06:34

同样实现检查文本是否发生改变,代码两种写法是不是都可以?

本帖最后由 lzb1001 于 2022-5-21 14:37 编辑

win10/python3.7。6
-----------------------
以下小甲鱼教材和视频的代码:

from tkinter import *
import hashlib



root = Tk()


text = Text(root, width=30, height=5)
text.pack()



text.insert(INSERT, 'I love FishC.com!')


contents = text.get(1.0, END)


def getSig(contents):
    m = hashlib.md5(contents.encode())
    return m.digest()


sig = getSig(contents)


def check():
    contents = text.get(1.0, END)
    if sig != getSig(contents): # 前后对比一致性:此行代码里的sig是第2次内容的,而getSig(contents)是第1次内容的?
      print('警告:文本内容已发生改变!')
    else:
      print('风平浪静~~')

Button(root, text='检查', width=10, fg='white', bg='red', font=('华康少女文字 - Kelvin', 10), underline=True, \
       command=check).pack()



root.title('Text组件Tags用法教学示例')



mainloop()

-----------------------------------

因为对上面红色部分不理解,所以我按小甲鱼在视频中的解说自己尝试写成下面这样居然也能运行:

from tkinter import *
import hashlib



root = Tk()


text = Text(root, width=30, height=5)
text.pack()



text.insert(INSERT, 'I love FishC.com!')


contents = text.get(1.0, END)


def getSig(contents):
    m = hashlib.md5(contents.encode())
    return m.digest()


sig1 = getSig(contents)


def check():
    contents = text.get(1.0, END)
    sig2 = getSig(contents)
    if sig2 != sig1:
      print('警告:文本内容已发生改变!')
    else:
      print('风平浪静~~')

Button(root, text='检查', width=10, fg='white', bg='red', font=('华康少女文字 - Kelvin', 10), underline=True, \
       command=check).pack()



root.title('Text组件Tags用法教学示例')



mainloop()

------------------------

说明:

注意对比两种写法中的红色部分

虽然都能实现同样功能,但小甲鱼的好像更简单(不过我有点看不懂),尤其小甲鱼代码中蓝色注释(我自己加注帮助理解)不知是否正确?

大神可以指点下?

wp231957 发表于 2022-5-21 17:25:22

是一样的,但是第二个多设一个变量,那就显得有些多余
页: [1]
查看完整版本: 同样实现检查文本是否发生改变,代码两种写法是不是都可以?