我有两个函数,我想在UNIX
终端上选择函数message()
或函数number()
。你知道吗
我定义的这个函数将在if __name__ == "__main__":
中使用:
import sys
def message(m=sys.argv[2]):
print(" {} ".format(m))
if __name__ == "__main__":
message()
在终端输入:
$python test.py python!
输出:
python!
当我有两个函数并且只调用其中一个时:
import sys
def message(m=sys.argv[1]):
print(" {} ".format(m))
def number(n=sys.argv[1]):
print(" {} ".format(n+2))
if __name__ == "__main__":
#code that should be here
你肯定问错了问题。您的问题是“参数如何在Python上工作”,对于使用参数,我知道有两个选项:
if "message" in sys.argv
规范的方法(在我看来,也是正确的方法)是创建参数值到函数的映射,该映射易于实现、高效且易于扩展:
注意使用
*
将其余参数传递给函数-请参见What does ** (double star) and * (star) do for parameters?。这消除了sys.argv
需要第三个值来创建函数的要求,如果您决定在其他地方重用这些函数,这可能是一个问题。你知道吗如果用户输入一个无效的函数名,这将引发一个
KeyError
;如果您愿意,您可以处理这个问题并给他们一个更具体的错误消息(使用sys.argv[1] in FUNCTIONS
,这将比签入列表更有效,或者使用try
和except
)。你知道吗如果您想要一个更复杂的CLI,例如带有标志和特定的值类型,那么应该使用^{} 或^{} 之类的内容。你知道吗
相关问题 更多 >
编程相关推荐