def parseCommand():
args = None
if len (sys.argv) < 2:
print('no command entered')
return
command = sys.argv[1]
print ('command executed: %s' %command)
if len(sys.argv) == 3:
args = sys.argv[2]
if len(sys.argv) > 3:
args = sys.argv[2:]
commandList = {
'fA' : fA(),
'fB' : fB(),
}
if args == None:
return commandList[command]
else:
return commandList[command](args)
if __name__ == "__main__":
parseCommand()
Run Code Online (Sandbox Code Playgroud)
我从linux运行这个脚本.但是,当我运行python scriptname.py fA或python scriptname.py fB时,脚本似乎只是从上到下运行,执行这两个函数当我将其更改为
if __name__ == "__main__":
fA()
Run Code Online (Sandbox Code Playgroud)
要么
if __name__ == "__main__":
fB()
Run Code Online (Sandbox Code Playgroud)
并运行python scriptname.py frtom linux它只执行我调用的函数.
谁能告诉我我的做法有什么问题?谢谢
你创造了commandList错误; 括号之后fA和fB被调用函数:
commandList = {
'fA' : fA(),
'fB' : fB(),
} ~~ <-- remove these parentheses
Run Code Online (Sandbox Code Playgroud)