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

Python Cmd Shell未定义命令处理:default()方法编写疑问

解决你的Cmd.default()方法问题

我一眼就看到问题啦——你的default()方法漏掉了实例方法必须的self参数!而且还没接收line参数(这个参数会传入用户输入的完整未知命令内容),这两个问题都会导致方法无法正常工作。

你原来的代码:

import cmd
class MyShell(cmd.Cmd):
    def default():
        print('you entered this unknown command: ')

修正后的完整代码应该是这样:

import cmd
class MyShell(cmd.Cmd):
    def default(self, line):
        # self是类实例方法的必填参数,line接收用户输入的未知命令内容
        print(f'you entered this unknown command: {line}')

# 可以加个测试入口
if __name__ == '__main__':
    MyShell().cmdloop()

关键说明:

  • Python中类的实例方法第一个参数必须是self(名字可自定义,但行业惯例用self),不然Cmd框架调用这个方法时,会因为参数不匹配抛出TypeError。
  • 按照官方定义,default()方法需要接收line参数,它会把用户输入的完整未知命令行内容传进来,这样你才能准确反馈用户输入的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:42:42