python - 有谁知道如何组合这些功能?
问题描述
我想组合 def clicked 和 def clicked2 函数,因为它们是相同的,但我不知道该怎么做。我还没有尝试过,但我想不出办法。
from tkinter import *
import random
window = Tk()
x = round(random.random()) + 1
m = 7
window.title("NIM-7 spel")
window.geometry('350x200')
lbl = Label(window, text="Player " + str(x) + " next")
lbl2 = Label(window, text="Their are " + str(m) + " coins left")
lbl.grid(column=0, row=1)
lbl2.grid(column=1, row=0)
def clicked():
global x
global m
m -= 1
if m < 1:
lol = "Player " + str(x) + " won!"
res = ""
else:
if x == 1:
x = 2
else:
x = 1
lol = "Their are " + str(m) + " coins left"
res = "Player " + str(x) + " is next"
lbl.configure(text=res)
lbl2.configure(text=lol)
def clicked2():
global x
global m
m -= 2
if m < 1:
lol = "Player " + str(x) + " won!"
res = ""
else:
if x == 1:
x = 2
else:
x = 1
lol = "Their are " + str(m) + " coins left"
res = "Player " + str(x) + " is next"
lbl.configure(text=res)
lbl2.configure(text=lol)
btn1 = Button(window, text="Take 1 coin", command=clicked)
btn2 = Button(window, text="Take 2 coins", command=clicked2)
btn1.grid(column=1, row=1)
btn2.grid(column=2, row=1)
window.mainloop()
有谁知道该怎么做?
解决方案
如果您使用 lambda 函数,则可以向 tkinter 按钮添加参数。已经提出了一些相同的问题:
如何从“tkinter”python包中调用带有“Button”函数参数的函数?
def clicked(value):
global x
global m
m -= value
if m < 1:
lol = "Player " + str(x) + " won!"
res = ""
else:
if x == 1:
x = 2
else:
x = 1
lol = "Their are " + str(m) + " coins left"
res = "Player " + str(x) + " is next"
lbl.configure(text=res)
lbl2.configure(text=lol)
btn1 = Button(window, text="Take 1 coin", command = lambda:clicked(1))
btn2 = Button(window, text="Take 2 coins", command = lambda:clicked(2))
推荐阅读
- sql - 将多个视图连接在一起时,我得到重复的记录,我看不到它的出路
- javascript - 使用本轮和傅立叶变换绘制/渲染 3D 对象 [动画]
- terraform - Terraform 0.11 列表属性与 terraform 0.12 兼容
- php - 无法将“jensegers/mongodb”安装到我的项目中
- highcharts - 将组织结构图线调整为从/到节点的一侧,而不是组织结构图的顶部或底部?
- python - 字典中的属性顺序已更改
- swift - 获取 NSLayoutConstraint 标识符不适用于 topAnchor
- node.js - 如何在节点不死机的情况下在节点中捕获“错误:连接 ECONNREFUSED”?
- regex - 如何使用正则表达式仅提取双引号内的数字
- python-3.x - 如何在 Marshmallow 方案中为 load_only 和 dump_only 参数定义相同的字段?