python函数定义需要注意的点

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

  • 这是什么意思?用实例来看一看:
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。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容