美文网首页程序员
python函数参数踩过的坑

python函数参数踩过的坑

作者: 愤怒的小猥琐 | 来源:发表于2018-04-09 22:03 被阅读0次

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

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

函数中含有可变参数

1.写法一

def init_params(list):
    print(list[0])
if __name__ == '__main__':
    list = [1, 2, 3, 4]
    init_params(list)
>>> 1
  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, 5]
    init_params(list)

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

  1. 上面没加符号,下面加了符号
def init_params(list):
    print(list[0])
if __name__ == '__main__':
    list = [1, 2, 3, 4, 5]
    init_params(*list)

这个时候,代码会报错:


错误提示.png

错误原因

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

后话

遇见这种问题,你心里肯定好多句MMP,但是程序员不写出各种各样让人无法维护的BUG又怎样能体现自己的价值呢?


哈哈哈.png

相关文章

  • python函数参数踩过的坑

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

  • Python参数传递小结

    2016.06.14更新:又踩坑了,百度后得到解决,参考链接:python:函数传参是否会改变函数外参数的值 入参...

  • Python使用阿里云函数计算与API网关产品组合详解

    话说不是在踩坑,就是在踩坑的夜里。学了Python三脚猫的功夫,打算彻底放弃ECS,使用函数计算和API网关创建一...

  • 用 Python 连接 MySQL 的三种方式

    1、MySQL-python 只支持 Python2.x,踩过坑的地方 2、mysqlclient pip3 ...

  • python基础-07-函数

    python基础-函数 1.函数的定义 例子: 2.python中函数的参数详解 必备参数demo: 默认参数de...

  • Python的参数

    Python的参数函数的参数

  • Python练习1.1

    打印九九乘法表实现代码 实现时踩坑: 单个print()函数默认换行,强制不换行需给print()函数增加参数en...

  • python 函数参数类型

    本文主要学习内容: python函数参数类型 python 的函数参数类型分为4种:1.位置参数:调用函数时根据函...

  • 交互设计师所要避免的几个坑

    前言 工作中难免会踩到几个坑,即使现在不踩以后还会踩,只有踩过才会深刻记住,踩过说明爱过!但是踩过的坑必须把坑填满...

  • 19.python 不定长参数 *argc,**kargcs

      在 python函数的声明和调用 中我们简单的了解了函数的相关使用,然而在函数传递参数的时候,我们埋下了一个坑...

网友评论

    本文标题:python函数参数踩过的坑

    本文链接:https://www.haomeiwen.com/subject/qqqwhftx.html