python中使用可选参数

names=["1","2",["3","4"]]
def print_lol(the_list,level):
    for each_item in the_list:
        if isinstance(each_item,list):
            print_lol(each_item)
        else:
            for tab_stop in range(level):
                print("\t",end="")
            print(each_item)
print_lol(names,2)

上面的结果:

1
2
Traceback (most recent call last):
File "D:/python/4.py", line 11, in <module>
print_lol(list23,0)
File "D:/python/4.py", line 6, in print_lol
print_lol(each_item)
TypeError: print_lol() takes exactly 2 arguments (1 given)

def print_lol(the_list,level):

这一句两个参数是必要的,“level”是一个可选的参数

names=["1","2",["3","4"]]
def print_lol(the_list,level=0):
    for each_item in the_list:
        if isinstance(each_item,list):
            print_lol(each_item)
        else:
            for tab_stop in range(level):
                print("\t",end="")
            print(each_item)
print_lol(names,2)

 结果是:

    1
    2
3
4

def print_lol(the_list,indent=False,level=0):
    for each_item in the_list:
        if isinstance(each_item,list):
            print_lol(each_item,indent,level+1)
        else:
            if indent:
                for tab_stop in range(level):
                    print("\t",end="")
            print(each_item)        
names=["Bob","Tom",["jua","lun"],"pop"]
print_lol(names)
print("**********************")
print_lol(names,True)
print("**********************")
print_lol(names,False,4)
print("**********************")
print_lol(names,True,4)

  结果是:

Bob
Tom
jua
lun
pop
**********************
Bob
Tom
	jua
	lun
pop
**********************
Bob
Tom
jua
lun
pop
**********************
				Bob
				Tom
					jua
					lun
				pop

  

原文地址:https://www.cnblogs.com/ilxx1988/p/2991707.html