python函数参数踩过的坑

在那些卑微的日子里,不敢去仰望星空的浩瀚,不敢去触碰人间的静好,不敢去凝望高山的雄壮,不敢去期待流水的细长。

最近在用python做运维模块,跟着老师的基础教程又重新学了一遍基础,发现函数参数这部分之前忽略了不少,在这里做个笔记记录下

函数中含有可变参数

1.写法一

def init_params(list): print(list[0])if __name__ == '__main__': list = [1, 2, 3, 4] init_params(list)>>> 1

写法二

def init_params(*list): print(list[0])if __name__ == '__main__': list = [1, 2, 3, 4] init_params(*list)

踩过的坑

上面加符号下面忘了加符号

def init_params(*list): print(list[0])if __name__ == '__main__': list = [1, 2, 3, 4, 5] init_params(list)

这个时候,你会发现输出是这样的:[1,2,3,4,5]

上面没加符号,下面加了符号

def init_params(list): print(list[0])if __name__ == '__main__': list = [1, 2, 3, 4, 5] init_params(*list)

这个时候,代码会报错:

错误提示.png

错误原因

python函数中,如果参数带了 * 号,python会默认这个参数是可选参数,也可以这样理解,不加 * 号是一个参数,加上 * 号是一个对象,所以第一个坑就很显然了,list被认为方法中唯一一个参数,所以会把所有参数都打印,第二个坑方法中需要一个参数,你却给了一个对象(对象可以包含很多参数),所以会报错

怎么快速学python,有什么方法,打算深入了解这个行业的朋友,可以加python学习群:399288541,邀请码:(云曦)不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。

每天晚上20:00我都会开直播给大家分享python知识和路线方法,群里会不定期更新最新的教程和学习方法,大家都是学习python的,或是转行,或是大学生,还有工作中想提升自己能力的python党,如果你是正在学习python的小伙伴可以加入学习。

最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180919A0W6Q500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券