可以在Python中使用连字符/破折号作为变量吗?



我是非常新的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的函数。这种类型的响应几乎不可能避免,因此几乎所有语言都不允许在变量和函数名中使用连字符。

最新更新