python小技巧01递归解释内嵌
现假设有一份机器人配件名单 list[头部,躯干,肢体]
头部这个list又有鼻子眼睛嘴巴这些小零件
肢体这个list有胳膊,肩膀,手。手这个list又有3种手指
所以这个list详细写出是:
list=[[1,2,3,4],5,[6,7,[8,9,10]]] #我们type(list)一下完全是list
我们需要解释了这个list,毕竟这样不符合审美,而且对于编程不熟悉的人也不会看啊。
我们是否要写好多for循环print这ist的一个个项?
for each_item in list
if isinstance(each_item,type(list)):
for eacha_item in each_item:
if isinstance(eacha_item,type(list)):
for eachaa_item in eacha_item:
if isinstance(eachaa_item,type(list)):
for eachaaa_item in eachaa_item:
print(eachaaa_item)
else:
print(eachaa_item)
else:
print(eacha_item)
else:
print(each_item)
#当你打完这些你一定会mmp的,容易打错就不说了,大量重复代码!
def print_99(list1): #list会与全局变量冲突
for each_item in list1:
if isinstance(each_item,list):
print_99(each_item) #each_item是list1的实例
else:
print(each_item)
事情就这么愉快的解决了,这个编程思想,感悟好多,似乎有些明白面向对象的编程了。自己一个人整整想了一个小时,似乎这就是道可道,非常道
如果不懂请在pycharm打开设置断点(就是在序号后面点豆子)然后f8下一步看解释器如何运作。f7是上一步。
本文不做后续更改仅以入门思考python运作机制和理念