python数据参数_python 的参数总结
一、形参和实参
函数参数的作用是传递数据给函数使用
在使用的过程中,参数有两种形式:形式参数和实际参数
形参:
定义函数的参数
实参:
调用函数时的参数
根据实际参数类型不同,将实际参数传递给形参的方式有两种:值传递和引用传递
值传递:
实参为不可变对象,传递给形参后,形参的值改变,实参值不变。(如 fun(a),传递的只是 a 的值,没有影响 a 对象本身,比如在 fun(a) 内部修改 a 的值,只是修改另外一个赋值的对象,不会影响 a 本身)
引用传递:
实参为可变对象,传递给形参后,形参的值改变,实参值也会改变(如( fun(la),则是将 la 真正的传过去,修改后 fun 外部的 la 也会收影响)
# 值传递和引用传递
def fun(obj):
print(obj)
obj+= 1obj1= "123456"demo(obj1)
print("函数调用后 obj1:" +obj1)
obj2= [1 ,2,3]
demo(obj2)
print("函数调用后:"+obj2)
# 结果123456函数调用后obj1:123456[1, 2, 3]
函数调用后obj2:[1, 2, 3, 1, 2, 3]
二、位置参数、关键字参数、默认参数、可变参数
1、位置参数(必备参数)
函数调用时的数量,位置,参数类型必须和定义的一样
2、关键字参数
函数调用时,使用形参的名字 = 输入的参数值,此时位置可与定义时不一致
3、默认参数
函数定义时,为参数设置一个默认的值,当函数调用时,没有传入这个参数值,直接使用这个默认值,
注意:定义函数时,默认参数必须指向不可变参数,如果指向可变对象,多次调用,可能时得到的不是意料之内的结果。
# 默认参数必须值相不可变对象,如果指向可变对象,结果不对
def demo1(obj=[]):
print( obj )
obj.append(1)
def demo2(obj=None):if obj ==None:
obj=[]
print(obj)
obj,append(1)
demo1()
demo1()
demo1()
demo2()
demo2()
demo2()
#结果
[]
[1]
[1, 1]
[]
[]
[]
4、可变参数(不定长参数)
可变参数有两种形式:一种时 *arg, 一种时 ** kwargs
*args :
这种形式表示接受任意多个实际参数将其放到一个与那组中
**kwargs:
这种形式表示接受任意多个实际参数将其放到一个字典中,类似关键字参数
#可变参数
#*args形式
def demo3(*args):
print"\n I like coffee:"
for i inargs:
print i,
#调用形式:可直接传一个tuple
demo3('巴西','土耳其')
#也可以通过list或者tuple的变量传
obj1=['蓝山','摩卡','卡布奇诺']
demo3(*obj1)
#**kwargs形式
def person(name, age,**kw):
print'\n name:', name, 'age:', age, 'other:', kw
def demo4(**kwargs):
print"\n name:age"
for i,j inkwargs.items():
print i,':',j
#调用:可直接传一个字典
person("Paul",77,sex="male",job="teacher")
#也可以通过字典变量传
obj2={'Mary':23,'HanMeiMei':34,'Lily':12}
demo4(**obj2)
#结果
I like coffee:
巴西 土耳其
I like coffee:
蓝山 摩卡 卡布奇诺
name: Paul age:77 other: {'job': 'teacher', 'sex': 'male'}
name:age
Lily :12Mary :23HanMeiMei :34
三、参数组合
在 Python 中定义函数,可以用必选参数,默认参数,可变参数,关键字参数组合使用,但是注意,参数定义的顺序必须是:
必选参数、默认参数、可变参数、关键字参数
python数据参数_python 的参数总结相关推荐
- python动态参数_python动态参数
Python的动态参数有两种,分别是*args和**kwargs,这里面的关键是一个和两个星号的区别,而不是args和kwargs在名字上的区别,实际上你可以使用*any或**whatever的方式. ...
- python查看函数参数_python函数参数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 最简单的无参数def functionname(): pass function ...
- Python数据可视化——图型参数介绍
前言 利用Python绘制常见的统计图形,例如条形 图.饼图.直方图.折线图.散点图等,通过这些常用图形的展现,将 复杂的数据简单化.这些图形的绘制可以通过matplotlib模块.p ...
- python中的sep参数_Python sep参数使用方法详解
Python sep参数使用方法详解 这篇文章主要介绍了Python sep参数使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Pyth ...
- python 启动参数_python启动参数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...
- python函数参数值_python 函数参数
# 函数的参数分为两种: # 形参:在定义阶段括号内指定的参数,在定义阶段不暂用内存空间,相当于变量名 # 实参:在调用阶段括号内传入的值,相当于值 # 在调用阶段,实参的值会绑定给形参,在调用结束后 ...
- python 默认参数后接可变参数_Python可变参数会自动填充前面的默认同名参数实例...
Python可变参数会自动填充前面的默认同名参数实例 最近在学习Python的时候遇到一个知识点,在此记录下来 可变参数会自动填充前面的同名默认参数 比如下面这个函数 def add_student( ...
- python收集参数_python收集参数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python参数传递时,主要有位置参数和关键字参数. 1. 位置参数:顾名思义, ...
- python如果否则_Python传递参数(如果已定义),否则使用defau
我试图用字典的值进行函数调用.在 该函数接受多个参数,大多数参数具有默认值.在def foo(name, a=None, b='', c=12): print(name,a,b,12) 如果字典被完全 ...
最新文章
- R语言t分布函数Student t distribution(dt, pt, qt rt )实战
- Docker 建立镜像流程
- 5首页加载慢_UIViewController 预加载方案浅谈
- NIO详解(一):java网络编程IO总结(BIO、NIO、AIO)
- python爬虫实战:利用scrapy,短短50行代码下载整站短视频
- 机器视觉:makefile编译调用Caffe框架的C++程序
- 《Python Cookbook 3rd》笔记(1.5):实现一个优先级队列
- ionic3 cordova ionic-native插件
- angular 权限 php,PHP,Angular,HTACCESS-仅允许来自源域的请求
- android代码删除sd卡文件在哪里,android - 如何从SD卡中删除文件?
- Microsoft Visual Studio Tools for AI
- webstorm简单介绍,webstrom基本使用
- java for循环死循环_Java for循环进化
- “21天好习惯”第一期-6
- git remote: Permission to denied
- 张家口地区某一级公路设计--河北建筑工程学院
- java解析数组_Java解析Json数组对象
- 中标麒麟NeoKylin系统使用--使用UFEI安装中标麒麟系统过程中/dev/disk/by-label/NeoKylin does not exit问题的解决
- 一键下载优美图库图片(附源码了哦)
- Sai 2 打开文件显示没有注册类的解决方法
热门文章
- shell 编程-Expect
- linux 虚拟一个40段ip,linux – 接口上的Multiples ip地址.我想指定其中一个输出
- 注意,Fastjson 最新高危漏洞来袭!
- 剑指offer48-最长不含重复字符的子字符串(双指针经典)
- luogu3413 萌数
- Java学习关于集合框架的基础接口--Collection接口
- layout文件夹中activity_main.xml与fragment_main.xml文件的处理记录
- Windows Store App 图像
- ASP.NET MVC的JavaScriptResult
- java maven 读取配置文件_Java项目和maven项目中如何获取设置配置文件中的属性