首页 > 其他分享 >函数传参指定默认列表与不指定默认列表

函数传参指定默认列表与不指定默认列表

时间:2022-08-17 00:36:27浏览次数:63  
标签:extendList list1 指定 list3 列表 默认 list2

 

def extendList(val, list=[]):
    list.append(val)
    return list

list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')

print "list1 = %s" % list1
print "list2 = %s" % list2
print "list3 = %s" % list3

# 执行结果

list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

 

说明:

  很多人都会误认为list1=[10],list3=[‘a’],因为他们以为每次extendList被调用时,列表参数的默认值都将被设置为[].但实际上的情况是,新的默认列表只在函数被定义的那一刻创建一次。

当extendList被没有指定特定参数list调用时,这组list的值随后将被使用。这是因为带有默认参数的表达式在函数被定义的时候被计算,不是在调用的时候被计算。因此list1和list3是在同一个默认列表上进行操作(计算)的。而list2是在一个分离的列表上进行操作(计算)的。(通过传递一个自有的空列表作为列表参数的数值)。

  

标签:extendList,list1,指定,list3,列表,默认,list2
From: https://www.cnblogs.com/Avicii2018/p/16593482.html

相关文章

  • 列表
    一、列表的应用场景:多个数据同时存储,如:某个公司所有员工的姓名。二、列表的格式:【数据1,数据2,数据3,数据4,.....】列表可以一次性存储多个数据,且可以为不同数......
  • python 中 如何提取或者删除列表的最后几个元素(适用于元组、字符串序列)
     001、>>>test=["a","b","c","d","e","f","g","h","i","j"]##测试列表>>>test['a','b','c'......
  • linux 中返回每一行中指定字符的所有列索引
     001、root@PC1:/home/test/test#lsa.txtroot@PC1:/home/test/test#cata.txt##测试数据abcdb......
  • Redis---列表
    1.前言Redislist(列表)相当于Java语言中的LinkedList结构,是一个链表而非数组,其插入、删除元素的时间复杂度为O(1),但是查询速度欠佳,时间复杂度为O(n)。当向列表中添......
  • 定时移动鼠标到指定位置(摸鱼神器)
    一、场景想摸鱼的时候可以看看二、代码@TestpublicvoidwzwMouseMove()throwsAWTException{System.out.println("开始");while(tru......
  • java中获取指定日期是周几
    可以使用Calendar日历工具类获取,代码如下:Calendarcalendar=Calendar.getInstance();calendar.setTime(newDate());intindex=calendar.get(Calendar.DAY_OF_WEEK)-......
  • 用户信息列表展示案例
    需求分析和设计1、需求:用户信息的增删改查操作2、设计:1、技术选型:Servlet+JSP+MySQL+JDBCTempleat+Druid+BeanUtils+tomcat2、数据库设计:createdatabaseda......
  • centos安装buildah指定版本1.19.6
    如果在k8s使用Containerd,而打包工具使用的是buildah,那么可能会遇到无法拉取镜像的问题,yum下载的buildah-1.11.6的版本是没有修复的,而1.11.7或1.19.6等已经修复的版本Fa......
  • conda创建虚拟环境到指定文件夹
    参考anaconda官方文档:https://docs.anaconda.com/anaconda/通常我们使用命令:condacreate-nenv_namepython=x.x创建一个环境,但是此时环境默认 $HOME/.conda/envs/......
  • 页面滚动到指定dom的位置
    //1.使用wx.createSelectorQuery()查询到需要滚动到的元素位置wx.createSelectorQuery().select('#bb4').boundingClientRect(res=>{......