개체의 문자열 표현을 목록의 각 개체와 비교하는 간단한 방법이 있습니까?개체의 문자열 표현과 목록의 각 개체의 문자열 표현 비교
아래의 예제 코드 (Python 2.7)는 의도 한대로 작동하지만, 파이썬에서이 작업을 수행하는 데 훨씬 좋은 방법이 있다고 가정합니다!
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)
은 URL 클래스의 __cmp__
및/또는 __eq__
+ __ne__
을 구현, (이다,이는 객체가 아니라이 나타내는 문자열을 비교하기 때문이다. 실패) 더 나은 아직
나는이 솔루션의 후반부에있는 클래스 내에서 구현하는 방법에 대해 더 많이 생각하고있었습니다. '__eq__'를 사용하여 제 코드를 작동 시켰습니다. –