如何在Python中创建可调用命令的列表?
我在想,怎么才能做一个用户可以输入的命令列表。比如说,用户输入“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')