为什么未分配的字符串不会在Python中导致编译错误?

时间:2016-06-29 19:58:57

标签: python

在我使用python时,我有时会发现我删除了一个变量,并在我的代码中将字符串内联。我注意到你可以这样做,并且当发生这种情况时,编译器或任何运行时错误都没有任何通知。有人能告诉我为什么这不会出错吗?

Auth::check()

这似乎就像文档字符串一样,但没有三重引号,只有一个集合。我找不到关于这个主题的任何文件。

2 个答案:

答案 0 :(得分:1)

因为Pyhthon定义并允许它,也称为expression-statements

我引用:

  

使用表达式语句(主要是交互式)来计算和   写一个值,或(通常)调用一个过程(一个函数)   没有有意义的结果;在Python中,过程返回值   没有)。表达式语句的其他用法是允许的   偶尔有用。

答案 1 :(得分:1)

与许多语言一样,拥有一个未赋值给变量的表达式是完全有效的。

3.14
"Boo!"
False
2 + 2
callable(func) and func()

Python将以交互方式执行此类表达式的结果,但在脚本中,这些值将被丢弃。

这样的表达可能实际上有副作用(例如最后一个,如果它可以调用funcfunc可以做任何事情),所以它不一定是没有意义的写这样的代码。实际上,对函数的调用并不会返回任何你需要保留的函数,这正是你反对的东西,而且显然很有用。