我想让这个代码可以用一个或两个位置参数运行:({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])