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

如果A vs如果A不为None:

宋飞文
2023-03-14
问题内容

我可以用吗:

if A:

代替

if A is not None:

后者似乎太冗长。有区别吗?


问题答案:

该声明

if A:

调用A.__nonzero__()(请参阅特殊方法名称文档)并使用该函数的返回值。总结如下:

object.__nonzero__(self)

要求执行真值测试和内置操作bool();应该返回FalseTrue,或者它们的整数等效值01。如果未定义此方法,__len__()则调用该方法(如果已定义),并且如果其结果为非零,则将该对象视为true。如果一个类既未定义,也__len__()未定义__nonzero__(),则其所有实例均被视为true。

另一方面,

if A is not None:

将参考A与进行比较None以查看其是否相同。



 类似资料:
  • 问题内容: 我一直以样式进行编码,但是,一些指南引起了我的注意,尽管这种样式有效,但似乎存在两个潜在问题: 它不完全可读;当然更容易理解。 这可能影响后(并导致微妙的错误),因为像,并会评估为也。 我也开始将此想法应用于其他比较,例如: 与 与 清单也是如此… 问题是,您对这一原则走了多远?在确保代码安全的同时,在哪里划界线? 无论如何,我应该始终使用该样式吗? 问题答案: 如果需要的话,可以使用

  • 本文向大家介绍knockout.js 如果/如果不是,包括了knockout.js 如果/如果不是的使用技巧和注意事项,需要的朋友参考一下 示例 您可以使用if绑定来确定是否应创建节点的子元素。 if绑定的逆是ifnot 相当于 有时,您无需创建容器就无法控制元素的存在(通常是针对中的<li>元素<ul>或中的<option>元素<select>) 淘汰赛可使用基于注释标签的无容器控制流语法来实现

  • 问题内容: 这两行代码有什么区别: 和 一个比另一个更有效吗? 会更好用吗 问题答案: 使用一下两个版本生成的字节码: 后者的操作较少,因此效率可能会略高一些。 在致谢中指出了),您所进行的操作与操作数量完全相同,只是更改并切换为: : 在这种情况下,除非每次比较所需的工作量有所不同,否则您根本看不到任何性能差异。 但是,请注意,这两个版本 不会永远是逻辑上相同的 ,因为这将取决于实现方式和有问题

  • 问题内容: 抱歉,是否曾经有人问过这个问题,但是我徒劳地寻找我 确切 问题的答案。基本上,对于Python 2.7,我有一个程序运行一系列地理处理工具,具体取决于用户在脚本中调整的一系列True / False变量所要求的内容,例如 但是,我现在发现x不必在字面上是“ True”即可运行该函数。例如: 因此,除False以外的任何值似乎都将评估为True,如果 x == True 或 x为True

  • 问题内容: 看起来“ if x”几乎像是较长的“ if x is None”语法的简写。它们在功能上是相同的,还是在给定x值的情况下两者的评估结果不同? 我认为行为在所有Python实现中也应该是相同的-但是,如果存在细微的差异,那真是太好了。 问题答案: 在以下情况下: 该测试将有所不同: 之所以如此,是因为测试身份,含义 相当于 因此