目标:

  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"

Python偏函数实例的更多相关文章

  1. python基础——实例属性和类属性

    python基础——实例属性和类属性 由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(objec ...

  2. python 发送邮件实例

    留言板回复作者邮件提醒 -----------2016-5-11 15:03:58-- source:python发送邮件实例

  3. python Cmd实例之网络爬虫应用

    python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiproces ...

  4. Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取

    很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...

  5. Python爬虫实例:爬取猫眼电影——破解字体反爬

    字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...

  6. Python爬虫实例:爬取豆瓣Top250

    入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...

  7. python 创建实例--待完善

    今天好好琢磨一下 python 创建实例的先后顺序 一. 就定义一个普通类 Util (默认)继承自 object,覆写 new ,init 方法 class Util(object): def __ ...

  8. pcapng文件的python解析实例以及抓包补遗

    为了弥补pcap文件的缺陷,让抓包文件可以容纳更多的信息,pcapng格式应运而生.关于它的介绍详见<PCAP Next Generation Dump File Format> 当前的w ...

  9. 生产消费者模式与python+redis实例运用(中级篇)

    上一篇文章介绍了生产消费者模式与python+redis实例运用(基础篇),但是依旧遗留了一个问题,就是如果消费者消费的速度跟不上生产者,依旧会浪费我们大量的时间去等待,这时候我们就可以考虑使用多进程 ...

随机推荐

  1. Java基础知识强化92:日期工具类的编写和测试案例

    1. DateUtil.java,代码如下: package cn.itcast_04; import java.text.ParseException; import java.text.Simpl ...

  2. LA 6448 Credit Card Payment

      [题目] 你的信用卡目前欠M元,每月的汇率是R,每月的利息要四舍五入为小数点后两位,你每月还B元,问多少月能还清. 输入 先是T代表测试数据组数 接下来T行,每行有三个实数,R,M,B每个实数小数 ...

  3. VS快速定位文件、代码插件——DPack

    之前用Myeclipse开发一个Java项目,发现其中“Open Resource”(Ctrl+Shirft+R)的功能比较好用,回到.Net后就找了找VS相应的功能,试了几个后觉得Dpack比较好用 ...

  4. hdu 1022

    // hdu1022 这题算是我做的第一道栈的题目,之前看过栈的一些内容,做这道题的时候,可以模拟出过程,但是具体的代码不会写...所以决定练习一些栈和队列的问题,大概思路就是有三个数组和一个栈,先把 ...

  5. 秒味课堂Angular js笔记------$scope.$watch和$scope.$apply

    $scope.$watch(watchFn , watchAction , deepWatch) 其中,watchFn是带有angular表达式或函数字符串: watchAction是一个函数或者表达 ...

  6. php long time(1)

    好久好久没有发表新的文章了,主要是懒得在这里写,都记在记事本上,所得都是自己理解的情况下写的,如今借此闲暇记录下来,:::: ****************PHP****************** ...

  7. hibernate注解原理

    持续更新中.. hibernate注解用的是java注解,用到的是java反射机制.

  8. JQuery 操作基本控件

    根据控件的样式class获取控件 $(".className")......          //className代表的就是控件的样式 根据控件的ID获取控件 $(" ...

  9. 武汉科技大学ACM :1004: A+B for Input-Output Practice (IV)

    Problem Description Your task is to Calculate the sum of some integers. Input Input contains multipl ...

  10. Qt 数据库创建表失败原因之数据库关键字

    本人数据库新手,在创建表时出现问题,最后经查证,找出问题所在.下面的程序是部分节选,在创建数据库表的时候,起先使用的L24的CreateDB,经测试,一直输出 Create testResult Fa ...