如何在Python中创建可调用命令的列表?

1 投票
4 回答
2085 浏览
提问于 2025-04-16 16:42

我在想,怎么才能做一个用户可以输入的命令列表。比如说,用户输入“who”这个命令,就能得到一个在MUD(多用户地下城)里在线的人的列表。这个功能是不是全靠if、elif和else这些语句来实现的呢?

顺便说一下,我用的是Python 3.1。

4 个回答

0

可以使用 input 函数来获取用户在命令行输入的信息:

input([提示信息])

如果提供了提示信息,这个信息会被显示在屏幕上,但不会换行。然后,这个函数会读取用户输入的一整行内容,把它转换成字符串(去掉最后的换行符),并返回这个字符串。

下面是一个简单的例子:

s = input("Enter a command: ")
if s == 'who':
  # do stuff
elif s == 'help':
  # show help
else
  # do other stuff
4

cmd模块就是为这个目的而设计的。你只需要创建一个新的类,继承自cmd.Cmd(),然后在里面写一些方法,这些方法的名字要以do_XXX开头。比如,do_who()这个方法就可以用来实现who这个命令。

11

不对。是一个调度字典。

def who(*args, **kwargs):
   ...

commands = {
  'who': who,
   ...
}

...
if command in commands:
  commands[command](*args, **kwargs)
else:
  print('Bad command or file name')

撰写回答