Python偏函数实例
目标:
1.编写一个gui,生成按钮
2.通过偏函数,生成按钮
3.通过装饰器,实现按钮输出信息功能
1.使用Tkinter,创建一个按钮
代码如下:
handetiandeMacBook-Pro:~ xkops$ cat button.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import Tkinter #定义一个窗口 root = Tkinter.Tk() #定义一个按钮 b1 = Tkinter.Button(root, foreground='white', background='blue', text='Button1') #包装 b1.pack() root.mainloop()
•运行代码,效果如下图
2.通过使用偏函数定义按钮(偏函数定义一些相通部分的内容)
代码如下:
handetiandeMacBook-Pro:~ xkops$ cat button.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import Tkinter from functools import partial root = Tkinter.Tk() #使用偏函数定义相同的内容 MyButton = partial(Tkinter.Button, root, foreground='white', background='blue') b1 = Tkinter.Button(root, foreground='white', background='blue', text='Button1') b2 = MyButton(text='Button2') b3 = MyButton(text='Button3') b4 = MyButton(text='quit') b1.pack() b2.pack() b3.pack() b4.pack() root.mainloop()
•运行代码,测试效果
3.定义函数,实现点击button2按钮,输出"Hello,world"功能,点击quit按钮,关闭窗口功能。
代码如下:
handetiandeMacBook-Pro:~ xkops$ cat button.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import Tkinter from functools import partial def greet(): print "Hello, world" root = Tkinter.Tk() MyButton = partial(Tkinter.Button, root, foreground='white', background='blue') b1 = Tkinter.Button(root, foreground='white', background='blue', text='Button1') b2 = MyButton(text='Button2', command=greet) b3 = MyButton(text='Button3') b4 = MyButton(text='quit', command=root.quit) b1.pack() b2.pack() b3.pack() b4.pack() root.mainloop()
•运行代码,点击Button2和quit按钮查看效果
4.通过编写装饰器实现,点击不同按钮,打印不同的信息。
代码如下:
handetiandeMacBook-Pro:~ xkops$ cat button.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import Tkinter from functools import partial def greet(word): def welcome(): print "Hello, %s" % word return welcome root = Tkinter.Tk() MyButton = partial(Tkinter.Button, root, foreground='white', background='blue') b1 = Tkinter.Button(root, foreground='white', background='blue', text='Button1') b2 = MyButton(text='Button2', command=greet('world')) b3 = MyButton(text='Button3', command=greet('Python')) b4 = MyButton(text='quit', command=root.quit) b1.pack() b2.pack() b3.pack() b4.pack() root.mainloop()
•运行代码,测试效果,点击Button2,后台输出"Hello, world", 点击Button3后台输出"Hello, Python"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义