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

Python类中countOdds方法调用报错:未处理self参数,求正确调用方式

解决Python类方法调用的self参数报错问题

你遇到的问题是因为countOdds是实例方法,这类方法默认第一个参数是self(代表类的实例),直接用Solution.countOdds(3, 11)调用时,Python会把3当成self参数,11当成low,导致参数不匹配报错。

有两种简单的解决方式:


方式一:先实例化类,再调用方法

先创建Solution类的实例对象,再通过实例调用方法,Python会自动把实例传入self参数:

class Solution(object):
    def countOdds(self, low: int, high: int):
        if low % 2 == 0 and high % 2 == 0:
            return (high-low)//2
        else:
            return (high-low)//2 + 1

# 创建实例
sol = Solution()
# 调用方法
result = sol.countOdds(3, 11)
print(result)  # 输出5(3,5,7,9,11共5个奇数)

方式二:把方法改成静态方法

如果这个方法不需要访问类或实例的任何属性,只是单纯的工具函数,可以用@staticmethod装饰器把它改成静态方法,这样就不需要self参数,直接用类名调用:

class Solution(object):
    @staticmethod
    def countOdds(low: int, high: int):
        if low % 2 == 0 and high % 2 == 0:
            return (high-low)//2
        else:
            return (high-low)//2 + 1

# 直接通过类名调用
result = Solution.countOdds(3, 11)
print(result)  # 输出5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:45:20