当前位置: 首页 > 面试题库 >

为什么python不允许在函数和变量名中使用连字符?

公孙驰
2023-03-14
问题内容

我一直想知道为什么我们不能在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。



 类似资料:
  • 问题内容: 我刚接触PHP,但是多年来我一直在使用类似的语言进行编程。我被以下内容弄糊涂了: 它产生了语法错误:这就是调用。 但这很好用: 碰了一会儿之后,我被告知您不能在默认属性中调用函数。你必须在做。我的问题是:为什么?这是“功能”还是草率的实现?有什么根据? 问题答案: 编译器代码建议这是设计使然,尽管我不知道其背后的官方原因是什么。我也不确定要可靠地实现此功能需要花费多少精力,但是目前完成

  • 问题内容: 经过测试,我发现linux允许文件名中的任何字符(和和null()除外)。那么我不应该以什么顺序输入文件名呢?我听说领导可能会混淆某些命令行程序,这对我来说并不重要,但是如果其他人决定收集一堆文件并使用某些GNU程序对其进行过滤,则可能会打扰其他人。 我建议删除前导空格和尾随空格,而我计划这样做的原因仅是因为用户通常并不打算拥有前导/尾随空格。 可能会有什么问题序列,我应该考虑不允许什

  • 我们知道< code>let是在JavaScript中定义变量的保留关键字。 那么为什么这不是错误呢?

  • 问题内容: Linux环境变量名称中允许使用哪些字符?我对手册页和网络的粗略搜索只产生了有关如何使用变量的信息,但没有产生允许使用的名称。 我有一个Java程序,它需要一个包含点的已定义环境变量,例如。使用Windows,我可以设置该变量,但是我没有在Linux中设置它的运气(在SuSE和Ubuntu中尝试过)。甚至允许使用该变量名吗? 问题答案: 来自公开组: 这些字符串的格式为name = v

  • 为什么允许使用memcpy指针更改常量变量? 此代码: 编译时只包含一个警告: 警告:传递“memcpy”的参数 1 将丢弃指针目标类型中的“const”限定符 [默认启用] 但运行得很好,并更改了常量变量的值。

  • 问题内容: 我在日食中收到很多这样的警告: 变量“ myVariable”必须是私有的,并且具有访问器方法。 我想得到它们是因为我没有在eclipse中手动将protectedAllowed设置为true。但是为什么默认情况下将其设置为false?我不应该使用受保护的属性吗? 问题答案: 从理论上讲,受保护的属性(变量)在面向对象的语言中是一种反模式。如果仅子类需要访问其超类的成员属性,则将属性本