是否有一种简单的方法可以将对象的字符串表示形式与列表中的每个对象进行比较?
下面的示例代码(Python 2.7)按预期工作,但我认为在 Python 中有更好的方法来做到这一点!
class url(object):
def __init__(self, address):
self.address = address
def __str__(self):
return self.address
list_of_urls = [url('http://www.example.foo'), url('http://www.example.bar')]
test_url = url('http://www.example.foobar')
test_url_listed = False
for link in list_of_urls:
if str(test_url) == str(link):
test_url_listed = True
if not test_url_listed:
list_of_urls.append(test_url)
是否可以使其在结构上更接近以下内容?
if test_url not in list_of_urls:
list_of_urls.append(test_url)
(事实上,这失败了,因为它比较的是对象而不是它们所代表的字符串。)