GUI tkinter與偏函式的應用

2022-05-13 19:22:01 字數 1806 閱讀 2153

版本:python3.6

模組:functools,tkinter

在python3.6中,模組名稱是tkinter而不是tkinter,tkmessagebox也由單獨的模組整合進了tkinter.messagebox。

借助偏函式鎖定引數的功能可以按類『批量』設定tkinter中的控制項,使語句更加簡練。

from functools import

partial

from tkinter import

tk,button,x, messagebox

warn = '

warn

'crit = '

crit

'regu = '

regu

'signs =

critcom = lambda: messagebox.showerror('

error

','error button pressed!

') #

需要lambda賦值為函式,否則只是直接執行showerror

regucom = lambda: messagebox.showinfo('

info

','regular handle, sit down!')

warncom = lambda: messagebox.showwarning('

warning

','warning button pressed!')

top =tk()

top.title(

'road signs')

top.geometry(

'250x300')

button(top,text='

quit

',command = top.quit,bg = '

red', fg = '

white

').pack(fill = x , expand =0)

mybutton =partial(button,top) #第一階模組化button

critbutton = partial(mybutton,command = critcom, bg = '

white

', fg = '

red'

) #第二階模組化button

warnbutton = partial(mybutton,command = warncom, bg = '

goldenrod1')

regubutton = partial(mybutton, command = regucom, bg = '

white')

for eachsign in

signs:

signtype =signs[eachsign]

cmd = '

%sbutton(text = %r%s).pack(fill = x, expand = 1)

'%(signtype.title(),eachsign,'

.upper()

'if signtype ==crit else

'.title()

') #-r會給字串加單引號

eval(cmd) #將字串轉換成可以執行的命令語句

top.mainloop()

輸出如下:

python偏函式和高階函式 高階函式與偏函式

今天主要在這裡仔細說明一下高階函式與偏函式的知識。高階函式 在絕大多數通常的計算機語言裡,函式的引數只接受基本的資料型別或是物件的引用,返回值也只是基本資料型別或者物件引用。示例如下 function test1 else return function console.log 資料不符合規範,錯誤...

偏函式 python Python的偏函式應用

在使用函式的時候,偶爾會遇到這種情況 某個函式帶 n 個引數,但在重複使用的過程中,實際只有其中少數幾個引數會不同,其他引數的值都是一樣的。那麼如何可以在多次使用這種函式時,減少輸入重複引數的次數或乾脆避免輸入這些引數呢?答案之一是使用預設引數。拿我們常用的 int 函式舉例,當我們使用 help ...

偏函式與部分應用函式

首先偏函式是個數學概念,偏函式不是 函式 的一種,而是乙個跟函式平行的概念.定義可參考wiki 它是指定義域x中可能存在某些值在值域y中沒有對應的值.scala可以通過模式匹配來定義偏函式,下面這兩種方式定義的函式,都可以認為是偏函式,因為他們都只對其定義域int的部分值做了處理.那麼像p1哪有定義...