python面试题,函数中的形参为可变数据类型问题(初级小白很坑的一道题)
2019-08-13 12:22
295 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cute_boy_/article/details/99419939
求下面代码的输出结果
def fun(val,list=[]): list.append(val) # print(id(list)) return list data1 = fun(10) data2 = fun(123,[]) data3 = fun('a') print(data1) print(data2) print(data3)
解释:当函数中的变量被默认为一个可变数据类型时,如果在调用的时侯不为其传参,则这个参数的地址将不会改变,如果为其传入参数则地址会发生改变,所以在最后一次调用的时候没有传入对应的参数则列表的数据依然是[10],故第三次调用后会发生data1中数据会发生变化的现象。
相关文章推荐
- Python内置数据类型与函数
- 【Python】数据类型转换相关函数大集合
- 面试题---实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。
- python 验证数据类型函数
- Python成长之路第二篇(1)_数据类型内置函数用法
- Python函数之可变类型与不可变类型
- 关于python函数传参数问题 , 不管什么类型都是传引用
- 函数名function是一个数据类型,可以赋值 分类: python基础学习 2013-09-12 11:01 366人阅读 评论(0) 收藏
- Python基础:数据类型、变量定义、输入/输出、逻辑、函数/模块(导入)/类、异常处理
- Python全栈开发之3、数据类型set补充、深浅拷贝与函数
- Object.ToString函数在转换日期类型数据时的精度问题
- Python简明教程(一)数据类型、逻辑控制、函数
- Python基础数据类型-函数传参详解
- python中不可变数据类型和可变数据类型
- 【Python初级】002-数据类型详解
- Python class 初始化参数为 list 等 可变类型时遇到的问题
- python 可变数据类型&不可变数据类型
- python可变参数调用函数问题
- 容易忽视的oracle函数问题--数据类型
- 以写代学:python 数据类型之数字,可用函数