python TypeError

在调用函数时,函数的参数显示多重参数
TypeError: tengxun() got multiple values for argument 'addr'
def tengxun(addr,self):
        addr1=self.addr
        # addr=self.comboBox.currentText()+self.comboBox_2.currentText()+self.lineEdit.text()
        url = "https://apis.map.qq.com/jsapi?"   #腾讯地图API接口
        para = {
            "qt": "geoc",
            "addr":addr1, #传入地址参数
            "output": "json",
            "key": "S7RBZ-RL2E 3-7IP3C-364T2-SPW77-3QFG3", #即腾讯地图API的key
            "pf":"jsapi",
            "ref":"jsapi"
        }
        req = requests.get(url,para) #请求数据
        req = req.json() #转为json格式
        #print(req)
        m = req["detail"]
        g = f"{m['pointx']},{m['pointy']}" #解析到经纬度数据
        print(g)
        return g
        df1 = pd.read_excel("result.xlsx")
        df2=df1['经纬度'].split(",")
        df3=df1["名称"]
        h=g.split(",")
        if df2[0]>h[0]:
            if df2[1]>h[1]:
                dis=(df2[0]-h[0])+(df2[1]-h[1])
                self.dis={"name":df3,"dis":dis}
                
            else:
                dis=(df2[0]-h[0])+(h[1]-df2[1])
                self.dis={"name":df3,"dis":dis}
        else:
            if df2[1]1]:
                dis=(h[0]-df2[0])+(h[1]-df2[1])
                self.dis={"name":df3,"dis":dis}
            else:
                dis=(h[0]-df2[0])+(df2[1]-h[1])
                self.dis={"name":df3,"dis":dis}
        first=min(self.dis["dis"])


        
    def start (self,addr):
        add1=""
        self.addr=self.comboBox.currentText()+self.comboBox_2.currentText()+self.lineEdit.text()
        print(add1)
        addr2="上海市闵行区漕宝路3138号"
        self.addr=add1
        self.tengxun(addr=addr2)

Traceback (most recent call last):

File "e:\python\项目\停车管理\停车排序管理.py", line 199, in start
self.tengxun(addr=self.addr,self="")
TypeError: tengxun() got multiple values for argument 'addr'

我将tengxun这个函数的代码段复制到另一个文件里,在调用时直接将addr这个参数的值设为上海市闵行区漕宝路3138号,就不会报错
希望各位能够帮我解决这个问题,我的项目这两天要申报了,急,谢谢!!

回答有用,就讨个赏,再采纳一下。
出错的原因是在调用tengxun()函数时,给addr参数传了两个值,一个是 addr=addr2,一个是 self="",但是函数只有两个参数addr和self,这两个参数都被赋予了值,所以报错了。

修改方法:在调用tengxun()函数时,仅仅给addr参数赋值即可,不要再给self参数赋值,代码如下:


def start (self,addr):
    add1=""
    self.addr=self.comboBox.currentText()+self.comboBox_2.currentText()+self.lineEdit.text()
    print(add1)
    addr2="上海市闵行区漕宝路3138号"
    self.addr=add1
    self.tengxun(addr2)