python - 是否可以在 Python 中使用连字符/破折号作为变量
问题描述
我对 python 非常陌生,并且编写了一个简单的脚本来通过 SMTP 发送普通的 txt 电子邮件(参考:https ://realpython.com/python-send-email/ )。我想知道我是否能够以某种方式将连字符作为变量名包含在内,但我没有运气看看是否有可能。我的理解是您不能在 python 中使用连字符,但有解决方法吗?
这个想法是能够应用一个区域作为 smtp 主机的附加参数,但是,aws 区域中的区域可能会很长,因此缩写会很好。
例如。email-smtp.ap-southeast-2.amazonaws.com
是 AWS 中的区域之一,可以直接使用ap-southeast-2
吗?
python3 send-email.py -username -password --region ap-southeast-2
我已经完成了所有工作,但仅此而已..也对想法持开放态度!
解决方案
遗憾的是,您不能在变量或参数名称中使用连字符。您受限于以下规则
第一个字符
'_a-zA-Z'
您可以使用任何字母或下划线开始变量名
所有其他字符
'[_a-zA-Z0-9]*'
与第一个字符相同,加上数字。
为什么?
连字符是减法运算符。想象一下你试图创建一个函数is-even(foo)
:
def is-even(foo):
return('bar')
对于 python 解释器,看起来您正在尝试使用 param定义关键字is
减去一些函数的函数。这种类型的响应几乎是无法避免的,因此几乎所有语言中的变量和函数名称都不允许使用连字符。even
foo
推荐阅读
- swift - 如何使文本适合圆形/图像SwiftUI的边界
- vba - VBA 与外部源通信
- javascript - 如何使页面无法检测到我正在使用 puppeteer 中的自动化控件
- java - 将 add() 方法重写为另一个 Java 类中的私有 Set<>?
- python - 在 venv 中导入已安装的模块时出现 ModuleNotFoundError
- android - 居中裁剪图像与背景
- html - 我希望能够针对不同尺寸的屏幕缩小/放大我的网页
- ibm-watson - 数据精炼厂中从字符串到日期的数据格式转换错误,Watson Studio
- javascript - Internet Explorer 中 => 符号的语法错误
- c# - 找出导航栏中显示的文本的默认字体大小