如何用一些预定义的变量替换Python中缺少的位置参数



我想让这个代码可以用一个或两个位置参数运行:({host}和{port}(当你没有定义端口号时,它会用预定义的数字替换。

如果您以>myurl.py localhost"&",但我想像>myurl.py localhost或>myurl.py localhost 1234

如何避免错误消息:

TypeError:url((缺少1个必需的位置参数:"port">

import sys
def url(host, port):
if port == "":
sel_port = 5432 # set default port
else:
sel_port = port # set custom port
gen_url = f'http://{host}:{sel_port}/'
print(gen_url)
url(sys.argv[1],sys.argv[2])

您可以在函数参数中设置默认值,例如:

def url(host, port=5432):

当我运行您的代码时,我没有得到那个错误,当我试图引用sys.argv[2]时,我得到了IndexError: list index out of range

这是一个可能的解决方案:

import sys
def url(host, port=5432):
gen_url = f'http://{host}:{port}/'
print(gen_url)
url(*sys.argv[1:3])

最新更新