python函数定义需要注意的点

2019-06-08  本文已影响0人  猛犸象和剑齿虎

默认参数必须指向不变参数

def add_end(a=[]):
    a.append('end')
    return a

print(add_end())
print(add_end())

返回结果:

['end']
['end', 'end']

默认参数a也是一个变量,它指向对象[],每次调用函数,如果改变了变量的内容,下次调用时,默认参数的内容就变了,不再是空的列表了。

def add_end(a=None):
    if a is None:
        a=[]
    a.append('end')
    return a
print(add_end())
print(add_end())

结果:

['end']
['end']

将参数a定义为固定的值即可。

在列表或元组之前可以加*,然后列表和元组就能传入函数。

定义一个平方和函数

def calc(*numbers):
    sum=0
    for n in numbers:
        sum+=n*n
    return sum

print(calc(1,2,3))

结果:

14
nums=[1,2,3]
print(calc(nums[0],nums[1],nums[2]))

结果:

14

但是很不方便,那么可以用*nums直接传入函数

nums=[1,2,3]
print(calc(*nums))

结果依然是14。

上一篇 下一篇

猜你喜欢

热点阅读