Python调用webbrowser.open仅最后一个链接可打开问题求助
问题原因
你代码里的三个打开网页的函数调用的都是全局作用域下的url变量,全局变量会被后面的赋值操作覆盖,最终url的值是最后赋值的素食店地址,所以不管触发哪个判断分支调用函数,打开的都是最后一个链接。
修复方案
方案1:把url定义为函数内部的局部变量,避免全局变量被覆盖
from tkinter import * import webbrowser new = 1 def openweb_Momoramen(): # 把url放在函数内部,仅当前函数可访问,不会被外部赋值覆盖 url = "https://www.momo-ramen.de" webbrowser.open(url,new=new) def openweb_Dulfsburger(): url = "https://dulfsburger.de" webbrowser.open(url,new=new) def openweb_Vincentvegan(): url = "https://vincent-vegan.com" webbrowser.open(url,new=new)
方案2:直接把url作为参数传入函数,简化重复代码
你不需要为每个链接单独写一个函数,直接把链接作为参数传递即可,代码更简洁,也不会出现变量覆盖的问题:
from tkinter import * import webbrowser new = 1 def open_web(url): webbrowser.open(url,new=new) # 调用部分直接传对应链接即可 if Essengehen_Hamburg == "A" or Essengehen_Hamburg == "Momo Ramen": open_web("https://www.momo-ramen.de") elif Essengehen_Hamburg == "B" or Essengehen_Hamburg == "Dulfs Burger": open_web("https://dulfsburger.de") elif Essengehen_Hamburg == "C" or Essengehen_Hamburg == "Vincent Vegan": open_web("https://vincent-vegan.com")
内容的提问来源于stack exchange,提问作者Sommer
相关产品推荐
相关产品推荐

