Python编程语言有哪些鲜为人知但有用的功能?
可能重复:
`==`运算符何时不等于`is`运算符?(蟒蛇)
我使用的是Python 2.x.
我比较时编辑给了我一个"警告"下划线my_var == None,但是当我使用时没有警告my_var is None.
我在Python shell中做了一个测试,并确定两者都是有效的语法,但我的编辑器似乎说这my_var is None是首选.
是这种情况,如果是这样,为什么?
在Python 2.6中查看Queue.py,我发现这个构造我发现有点奇怪:
def full(self):
"""Return True if the queue is full, False otherwise
(not reliable!)."""
self.mutex.acquire()
n = 0 < self.maxsize == self._qsize()
self.mutex.release()
return n
Run Code Online (Sandbox Code Playgroud)
如果maxsize为0,则队列永远不会满.
我的问题是它如何适用于这种情况?如何0 < 0 == 0被认为是假的?
>>> 0 < 0 == 0
False
>>> (0) < (0 == 0)
True
>>> (0 < 0) == 0
True
>>> 0 < (0 == 0)
True
Run Code Online (Sandbox Code Playgroud) 该
is运营商不匹配变量的值,但这些实例本身.
它到底意味着什么?
我声明了两个变量命名x并y在两个变量中分配相同的值,但是当我使用is运算符时它返回false .
我需要澄清一下.这是我的代码.
x = [1, 2, 3]
y = [1, 2, 3]
print x is y #It prints false!
Run Code Online (Sandbox Code Playgroud) python是否支持链接is运算符,如下所示?
a = None
b = None
a is b is None
Run Code Online (Sandbox Code Playgroud)
这个输出True,一些文档引用会很好.