You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:36:04