如何在 Python 中用一些预定义的变量替换缺少的位置参数
Posted
技术标签:
【中文标题】如何在 Python 中用一些预定义的变量替换缺少的位置参数【英文标题】:How to replace in Python missing positional args with some predefined variable 【发布时间】:2022-01-23 04:41:15 【问题描述】:我想让这段代码可以用一个或两个位置参数运行:(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])
【问题讨论】:
【参考方案1】:我在运行您的代码时没有收到该错误,当我尝试引用 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])
【讨论】:
谢谢。完美运行!【参考方案2】:您可以在函数参数中设置默认值 - 例如:
def url(host, port=5432):
【讨论】:
谢谢!真的很管用以上是关于如何在 Python 中用一些预定义的变量替换缺少的位置参数的主要内容,如果未能解决你的问题,请参考以下文章
在 IOS 中用自定义 SFSafariViewController 替换 AppAuth
如何在应用程序启动脚本中用环境变量替换硬编码的 JAVA_HOME?
如何在arch linux中用python 2完全替换python 3