python - 动态引用变量
问题描述
上下文:我正在创建一个接受位置参数的 Django 管理命令。这个参数是一个位置。我的目标是使用位置值来引用相应的变量。
我有一个名为Boston_webhook
. 这是一个简单的字符串,其中包含一个长 URL,它只是一个 MSteams webhook...
我有一个名为的附加全局变量Budapest_webhook
,它包含相同的数据类型,而是指与布达佩斯位置相关的 webhook。
在我的脚本中,必须定义一个连接器变量才能将消息发送到正确的位置。
myTeamsMessage = pymsteams.connectorcard()
如果有人输入 python manage.py 报告Boston
,我想将其插入连接器参数,但我不确定如何动态引用变量。
当 location == 'Boston' 使用某种连接时,是否可以引用 Boston_webhook ......?
像myTeamsMessage = pymsteams.connectorcard(location + _webhook)
这样的东西是理想的
我想避免使用条件,因为它不可扩展。我需要能够将位置添加到数据库而无需更改代码......
解决方案
使用字典将 webhook 的名称映射到 webhook 本身 - 像这样
webhooks = {
"Boston": "boston url",
"Budapest": "budapest url"
}
现在您可以像这样引用您的 webhook
# this will give you Boston webhook
myTeamsMessage = pymsteams.connectorcard(location + webhooks["Boston"])
这是最简单的方法。我认为最好只为此创建新类并使用方法将该类转换为字符串,但如果您不需要更复杂的东西,这就足够了
推荐阅读
- c - 跨多个文件的冲突类型的函数
- typescript - 输入接口 a 或接口 b,但不是两者的并集
- java - 是否有一个函数可以计算 Java 中每个循环的迭代次数?
- excel - 获取 IE 自动化错误“对象变量或未设置块变量”
- node.js - Express 路由器不等待 forEach 循环
- reactjs - Material-UI.com 自动完成样式
- javascript - 在解析 json 数据上放置小数位并在模态输入中显示
- excel - 您可以更改 AutoFilter 方法的条件吗?
- python - 在 DataFrame 中查找第二次出现的正则表达式
- linux - 如何在 WSL 中添加自定义起始目录