一个最简单的方法解决Python的TypeError: xxx() takes 1 positional argument but 2 were given

当我们在类内写了函数进行调用的时候,有时侯并没有传递参数,所编写的函数方法也不需要参数,但运行会报错:TypeError: xxx() takes 1 positional argument but 2 were given,参数请求的错误,某并未深究其中原因,但单纯就解决这个问题而言,根据某实际经验,只需要在你的目标调用函数里定义空参数即可解决报错问题。

演示如下:

假设报错:

class MainPro:
    def __init__(self):
        #init code
        pass
    def f1(self):
        self.f2() #假设此处报错
    def f2(self):
        pass

只需修改添加:

class MainPro:
    def __init__(self):
        #init code
        pass
    def f1(self):
        self.f2() 
    def f2(self,arg=None):#给调用方法添加为空的形参,报错几个就添加几个
        pass

给调用方法添加为空的形参,报错几个就添加几个,一般能够解决问题。但建议还是了解其后原理用最正确的方法,防止留下程序漏洞造成错误。

作者:Wiktok

物联沃分享整理
物联沃-IOTWORD物联网 » 一个最简单的方法解决Python的TypeError: xxx() takes 1 positional argument but 2 were given

发表回复