python函数之参数定义

# 参数定义的顺序:必选参数、默认参数、可变参数和关键字参数
# 当函数体的默认参数是不变对象
def fun(i=100):
    return i

print(fun())        # 100
print(fun(200))     # 200
print(fun(300))     # 300


# 当函数体的默认参数是可变对象
def fun(i=[]):
    i.append(100)
    return i

print(fun())    # [100]
print(fun())    # [100, 100]
print(fun())    # [100, 100, 100]


# 解决:当函数体的默认参数是可变对象:如果不为空就重新创建一个对象
def fun(i=None):
    if i is None:
        i=[]
    i.append(100)
    return i

print(fun())        # [100]
print(fun())        # [100]
print(fun([1]))     # [1, 100]


# 其他:当函数体的参数是可变参数(接收一个tuple)
def fun(*i):
    j=''
    for ii in i:
        j=j+str(ii)+" "
    return j

print(fun())        # 
print(fun(1,2,3))   # 1 2 3 
lt=[1,2,3,4]
print(fun(*lt))     # 1 2 3 4 


# 其他:当函数体的参数是关键字参数(接收一个dict)
def fun(**i):
    return i

print(fun(i='11',j=22,k=[1,2,3]))   # {'i': '11', 'k': [1, 2, 3], 'j': 22}

你可能感兴趣的:(【Python】)