我一直想知道为什么我们不能在python中的函数名和变量名之间使用连字符

尝试过使用Lisp和Clojure之类的功能编程语言,允许使用连字符。为什么python不这样做。

# This won't work -- SyntaxError
def is-even(num):
    return num % 2

# This will work
def is_even(num):
    return num % 2

我确信,由于某些原因,圭多爵士一定会这样做。我用谷歌搜索,但找不到答案。谁能给我一点启示吗?

最佳答案

因为连字符用作减法运算符。想象一下,您可能有一个is-even函数,然后您得到了如下代码:

my_var = is-even(another_var)
is-even(another_var)是对is-even函数的调用,还是从名为even的变量中减去is函数的结果?

Lisp方言不存在此问题,因为它们使用前缀表示法。例如,两者之间有明显的区别
(is-even 4)


(- is (even 4))

在Lisps。

关于python - 为什么python不允许在函数和变量名中使用连字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2064329/

10-12 15:44