是否有一種比較對象的字符串表示形式與列表中的每個對象的簡單方法?比較對象的字符串表示形式與列表中每個對象的字符串表示形式
下面的示例代碼(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)
(由於是,這種失敗,因爲它比較的對象,而不是它們所代表的字符串。)
我在考慮如何在類中實現它,這個解決方案的後半部分就是如此。讓我的代碼使用'__eq__'工作。 –