相关疑难解决方法(0)

理解Python的"是"运算符

is运营商不匹配变量的值,但这些实例本身.

它到底意味着什么?

我声明了两个变量命名xy在两个变量中分配相同的值,但是当我使用is运算符时它返回false .

我需要澄清一下.这是我的代码.

x = [1, 2, 3]
y = [1, 2, 3]

print x is y #It prints false!
Run Code Online (Sandbox Code Playgroud)

python operators python-3.x

102
推荐指数
5
解决办法
8万
查看次数

是操作员的困惑

运算符是比较两个对象的内存地址(如果它们相同),则返回true,否则返回false. 代码#1

>>> a = "poi"
>>> b = "poi"
>>> a is b
True
Run Code Online (Sandbox Code Playgroud)

我创建了两个对象,其内容相同,但它们完全位于不同的内存地址上.那么为什么运算符返回true?不应该返回虚假.就像这段代码一样

>>> ktr = "today is a fine day"
>>> ptr = "today is a fine day"
>>> ktr is ptr
False
Run Code Online (Sandbox Code Playgroud)

python string

7
推荐指数
1
解决办法
193
查看次数

用于`is`的Python dunder方法

在浏览文档时,特别是http://docs.python.org/2/reference/expressions.html#is,我仍然找不到定义Python关键字实现的dunder/protocol方法is.什么方法决定它?根据我的理解,所有is操作都是id在调用两个对象时比较函数的结果.

python

7
推荐指数
1
解决办法
1341
查看次数

实例集

我正在尝试构建一组对象的实例,但是添加某些对象的实例会导致一个TypeError: unhashable instance.这是一个最小的例子:

from sets import Set
import random
from UserDict import DictMixin

class Item1(object):
    pass

class Item2(DictMixin):
    pass

item_collection = Set()

x = Item1()
y = Item2()

item_collection.add(x) # this works
print item_collection
item_collection.add(y) # this does not
print item_collection
Run Code Online (Sandbox Code Playgroud)

为什么会失败?如何获取从DictMixin派生的对象的一组实例?

python

1
推荐指数
2
解决办法
2825
查看次数

标签 统计

python ×4

operators ×1

python-3.x ×1

string ×1