Python调用createSimpleExtent报位置参数数量不匹配TypeError
问题根因
报错是实例方法调用时重复传入self参数导致的。
Python类的实例方法有固定传参规则:当你通过实例对象(即代码里的self)调用实例方法时,Python会自动把当前实例作为第一个位置参数(也就是方法定义里的self)隐式传给方法,不需要手动显式传入。
看你的调用代码:
print(str(datetime.now()) + ' createSimpleExtent (start)') self.createSimpleExtent(self) print(str(datetime.now()) + ' createSimpleExtent (end)')
你在调用时写了self.createSimpleExtent(self),相当于给方法传了2个位置参数:第一个是Python自动隐式传入的实例本身,第二个是你手动传入的self,但你的createSimpleExtent方法定义只声明接收1个self位置参数,参数数量不匹配就抛出了你看到的类型错误。
修复方案
直接删掉调用时手动传入的self即可,修改后的调用代码为:
print(str(datetime.now()) + ' createSimpleExtent (start)') self.createSimpleExtent() print(str(datetime.now()) + ' createSimpleExtent (end)')
修改后运行就不会再出现这个参数数量不匹配的报错。
内容的提问来源于stack exchange,提问作者databasefoe
相关产品推荐
相关产品推荐

