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()
我从linux运行这个脚本。但是,当我运行python scriptname.py fA或python scriptname.py fB时,脚本似乎只是从上到下运行,执行这两个函数 当我将其更改为
时if __name__ == "__main__":
fA()
或
if __name__ == "__main__":
fB()
并运行python scriptname.py frtom linux它只执行我正在调用的函数。
有谁能告诉我我的做法有什么问题? 感谢
答案 0 :(得分:8)
您正在创建commandList
错误; fA
和fB
之后的括号正在调用函数:
commandList = {
'fA' : fA(),
'fB' : fB(),
} ~~ <-- remove these parentheses