我正在对对象列表进行严格比较,只是为了识别可能已更改的对象,例如:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
def setUp():
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
base_url = ('enter your url')
driver.get(base_url)
task = driver.find_element_by_id("some_element_id")
task.send_keys("Some_text",Keys.ENTER)
setUp()
在某些情况下,if ($oldValue !== $newValue)
和$oldValue
是$newValue
个对象。
调试我的应用程序在比较它们之前,我得到了以下两个值的输出:
DateTime对象 ( [date] => 2017-04-24 00:00:00.000000 [timezone_type] => 3 [timezone] =>世界标准时间 )
DateTime对象 ( [date] => 2017-04-24 00:00:00.000000 [timezone_type] => 3 [timezone] =>世界标准时间 )
为什么我的比较/条件仍然正确?
答案 0 :(得分:4)
在PHP中比较对象时,===
运算符不会比较值。 It compares instances。这意味着除非两个对象都指向同一个对象,否则它们并不完全相同。
使用比较运算符(==)时,会比较对象变量 以一种简单的方式,即:两个对象实例是相等的 具有相同的属性和值(值与==比较),和 是同一类的实例。
使用identity运算符(===)时,对象变量是相同的 当且仅当他们引用同一个类的同一个实例时。