isinstance()
을 사용하는 파이썬으로 간주되지 않으며 사람들은 다음과 같이 제안합니다. hasattr()
을 사용하십시오.hasattr() 사용법을 올바르게 작성하는 방법
가장 좋은 방법은 hasattr()
을 사용하는 함수의 적절한 사용을 문서화하는 것입니다.
예 : 내가 다른 웹 사이트 (예를 들어 야후 금융, Google 금융)에서 주식 데이터를 얻을 수 및 클래스 GoogleFinanceData
모두이 방법 get_stock(date)
이 YahooFinanceData
이 있습니다. 개의 주식의 값과 비교하는 기능도있다 :이 함수는 다음과 같이 사용된다
def compare_stocks(stock1,stock2,date):
if hasattr(stock1,'get_stock') and hasattr(stock2,'get_stock'):
if stock1.get_stock(date) < stock2.get_stock(date):
print "stock1 < stock2"
else:
print "stock1 > stock2"
:
compare_stocks(GoogleFinanceData('Microsoft'),YahooFinanceData('Apple'),'2012-03-14')
그것은 다음과 같이 사용되지는 :
compare_stocks('Tree',123,'bla')
질문은 : 사람들에게 stock1
과 stock2
에 사용할 수있는 수업을 어떻게 알릴 수 있습니까? "stock1 and stock2 ought to have a method get_stock"
과 같은 문서화 문자열을 작성해야하고 사람들은 원본을 직접 살펴 봐야합니까? 아니면 모든 클래스를 하나의 모듈에 넣고 문서화 문자열에 그 파일을 참조합니까?