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

Python类方法调用报错:缺少self参数,求助解决方案

问题排查与解决方法

错误原因

你出错的核心原因是没有创建类的实例,而是直接将类本身赋值给了dice变量。当通过类直接调用实例方法roll时,Python无法自动传入代表实例对象的self参数,因此会抛出TypeError提示缺少self。

解决步骤

1. 正确创建类的实例

将代码中的:

dice = Dice

修改为:

dice = Dice()

添加括号后,dice就成为了Dice类的一个实例对象,此时调用dice.roll(),Python会自动把该实例作为self参数传入方法中,无需手动传递。

2. 代码优化(规范写法)

另外可以优化代码的规范性:

  • 模块导入语句应该放在文件顶部,不要在方法内部导入;
  • 简化roll方法的逻辑,去掉冗余变量。

修正后的完整代码:

from random import choice

class Dice:
    def roll(self):
        return (choice(range(1, 7)), choice(range(1, 7)))

# 创建实例
dice = Dice()
# 调用方法
result = dice.roll()
print(result)

内容的提问来源于stack exchange,提问作者Muhammad Tayyab Ullah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:52:12