Python 我做了一个打开谷歌的按钮。我已经解决了这个问题,但我想知道为什么它会起作用
我正在用Tkinter制作一个小程序(实际上是第一个)。这个程序应该有网站的徽标,按下按钮会打开网站Python 我做了一个打开谷歌的按钮。我已经解决了这个问题,但我想知道为什么它会起作用,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在用Tkinter制作一个小程序(实际上是第一个)。这个程序应该有网站的徽标,按下按钮会打开网站 google_url = 'https://www.google.com' def OpenUrl(): webbrowser.open_new(google_url) button1 = tk.Button(root, command=OpenUrl) 此代码起作用(打包/导入所有内容后) 这是之前的代码: button1 = tk.Button(root, command=we
google_url = 'https://www.google.com'
def OpenUrl():
webbrowser.open_new(google_url)
button1 = tk.Button(root, command=OpenUrl)
此代码起作用(打包/导入所有内容后)
这是之前的代码:
button1 = tk.Button(root, command=webbrowser.open_new('https://www.google.com'))
我是Python新手,所以我真的很想了解为什么这种改变会奏效。是Python解释器做了什么?现在,这并不是我写的全部代码,所以如果你认为我应该展示这一点,那么问我,但这是允许代码工作的差异。(按下按钮时打开谷歌。之前,当代码运行时,它打开谷歌,但没有打开tkinter)为您的第一个项目欢呼 您的第一次尝试无效,因为
命令
arg必须是函数<代码>webbrowser.open_new('https://www.google.com“)是一个函数,它已经被调用并进行了计算。现在它等于open\u new()
s返回值(即)
在单击按钮之前,不会计算OpenUrl
的内容,因为函数仅在调用时运行。lambda(一个未命名的内嵌函数)也可以工作:
button1 = tk.Button(root, command= lambda: webbrowser.open_new('https://www.google.com'))
快乐编码
command
的值应该是单击按钮时要调用的函数,因此它应该是对函数的引用。代码“before”被指定为webbrowser.open_new(…)的结果,而不是对函数的引用。