def NumberDigitsInInteger(i):
"""возвращает количество цифр в целом числе"""
assert(isinstance(i,int))
return len(str(i))
def IterFlatten(iterable):
"""итератор по вложенным перечисляемым объектам
>>> [i for i in IterFlatten([1,34.5,2,3,[[],[6,7,{'a':'b','c':'d'}]]])]
[1, 34.5, 2, 3, 6, 7, 'a', 'c']
"""
if hasattr(iterable,"__iter__"):
for seq in iterable:
for e in IterFlatten(seq):
yield e
else:
yield iterable
indusинтерфейс - я имел ввиду
что вы имели ввиду под "лучше проверять
http://pypi.python.org/pypi/zope.interface
http://hlabs.spb.ru/development/zope/interface_description.html
концепция:
http://www.boost.org/doc/libs/1_46_1/libs/concept_check/concept_check.htm
http://download.oracle.com/javase/tutorial/java/concepts/interface.html
http://msdn.microsoft.com/en-us/library/87d83y5b%28v=vs.80%29.aspx