如何在Python中比较这些对象

时间:2016-11-03 20:05:14

标签: python-2.7 if-statement printing

import urllib2

page =urllib2.urlopen(url)

data = str(page.read())

data2 = str(page.read())

if data == data2: 
    print "yes"

鉴于上面用Python编写的代码,我无法弄清楚为什么数据和data2之间的比较

if data == data2: 
    print "yes"

评估为“不相等”,不打印“是”。如果一些Python专家可以帮助我理解我真的很感激。

2 个答案:

答案 0 :(得分:0)

我认为比较是以datadata2为对象完成的。

试试这个:

import urllib2

page = urllib2.urlopen(url)

data = raw_input(page.read())
data2 = raw_input(page.read())
if data == data2:
    print "yes"

我使用read()

提供变量raw_input()

答案 1 :(得分:0)

好的,我找到了解决自己问题的方法。如果其他人有类似的问题,我会解释一下我学到的东西。

创建时python中的对象具有关联的内存位置。通常分配对象(str是对象)时,仅分配内存位置,并且没有复制对象的值的副本或深层副本。

Python中存在一个名为' copy'的API。因此,如果我这样做,代码将起作用:

import urllib2
import copy

page =urllib2.urlopen(url)

data1 = str(page.read())

data2 = copy.deepcopy(data1)

if data1 == data2: 
    print "yes"

感谢回答的人。亲切的问候