You need to enable JavaScript to run this app. Python调用ReverseNo()报takes 1 positional argument but 2 were given错误
优惠活动
大模型
产品
解决方案
定价
更多

Python调用ReverseNo()报takes 1 positional argument but 2 were given错误

问题分析与修复

错误产生原因

  • 类的实例方法调用时,Python会自动将实例对象作为第一个参数传入方法,因此实例方法定义时必须预留第一个参数接收该值(惯例命名为self)。原代码中ReverseNo仅声明了1个形参n,调用时传入了自动生成的实例参数+手动传入的1234共2个参数,和形参数量不匹配,触发类型错误。
  • 即便补上self参数,原代码还存在变量作用域问题:方法内直接使用的reverse会被识别为未定义的局部变量,无法直接访问类属性reverse。

修复方案

这里临时变量reverse仅在反转计算时使用,放在方法内部作为局部变量更合理,修改后代码如下:

class Reverse():
    def ReverseNo(self, n):
        reverse = 0
        while n != 0:
            reverse = reverse * 10 + n % 10
            n = n // 10
        return reverse        


obj1 = Reverse()
print(obj1.ReverseNo(1234))

运行后将输出预期结果4321。

内容的提问来源于stack exchange,提问作者Harry John

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 19:36:02