我认为使用isinstance()
并不认为是pythonic,使用hasattr()
。如何正确记录hasattr()使用
我想知道什么是最好的方法是文件正确使用使用hasattr()
函数。
例子: 我会从不同的网站(如雅虎财经,谷歌财经)股票数据,并有类GoogleFinanceData
和YahooFinanceData
这两者有一个方法get_stock(date)
。 还有用于比较两股值的函数:该函数用于这样
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"
这样的文档字符串,人们必须自己查看源代码?或者我将所有正确的类放入一个模块并在文档字符串中引用该文件?