我是非常新的python和写了一个简单的脚本来通过SMTP发送投诉文本电子邮件(参考:https://realpython.com/python-send-email/)。我想知道我是否能够以某种方式包括连字符作为变量名,但我没有任何运气看到它是否可能。我的理解是,你不能在python中使用连字符,但有一个工作吗?
我们的想法是能够应用一个区域作为smtp主机的附加参数,然而,在一个区域的区域可以很长键入,所以缩写是最好的。
例如,email-smtp.ap-southeast-2.amazonaws.com
是AWS中的一个区域,它是否可以仅用作ap-southeast-2
?
python3 send-email.py -username -password --region ap-southeast-2
我已经把一切工作,但只是这个…也要接受各种想法!
遗憾的是,您不能在变量或参数名称中使用连字符。您受限于以下规则
1字符
'_a-zA-Z'
可以使用任意字母或下划线
所有其他字符
'[_a-zA-Z0-9]*'
与第一个字符相同,加数字。
为什么?
连字符是减法操作符。假设您尝试创建一个函数is-even(foo)
:
def is-even(foo):
return('bar')
对于python解释器来说,它看起来像是您试图定义关键字is
减去带有参数foo
的某个函数even
的函数。这种类型的响应几乎不可能避免,因此几乎所有语言都不允许在变量和函数名中使用连字符。