我向该功能添加了一些检测功能:
def flatten(nested, depth=0): try: print("{}Iterate on {}".format(' '*depth, nested)) for sublist in nested: for element in flatten(sublist, depth+1): print("{}got back {}".format(' '*depth, element)) yield element except TypeError: print('{}not iterable - return {}'.format(' '*depth, nested)) yield nested现在打电话
list(flatten([[1,2],3]))
显示
Iterate on [[1, 2], 3] Iterate on [1, 2] Iterate on 1 not iterable - return 1 got back 1got back 1 Iterate on 2 not iterable - return 2 got back 2got back 2 Iterate on 3 not iterable - return 3got back 3



