函数参数

1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

a传给了x。b传给了y。

3.位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定)

#位置参数,必须一一对应,否则报错,缺一个或者多一个不行
def test1(x,y,z):
print(x)
print(y)
print(z) test1(1,3,5) 结果:
1
3
5 #关键字参数,不需要一一对应,缺一个或者多一个不行
def test1(x,y,z):
print(x)
print(y)
print(z) test1(y=1,z=3,x=5) 结果:
5
1
3

位置参数和关键字混搭

#位置参数必须在关键字参数左边
def test1(x,y,z):
print(x)
print(y)
print(z) test1(1,3,z=5)
#z=5换成y=5会报错,因为按照顺序,5会覆盖3,但是z值没有
结果:
1
3
5

4.默认参数

def handle(x,type="None"):
print(x,type) handle("hello")
handle("hi",type="how are you")
handle("ll","ii") 结果:
hello None
hi how are you
ll ii

5.参数组

**跟字典有关系
*跟列表有关系
**,*args在最后放着表示可扩展性!!!! *
def test(x,*args):
print(x)
print(x,args)
print(args)
print(args[0])
print(*args[0]) test(1,["c","v","b"],5,6,7,8) 结果:
1
1 (['c', 'v', 'b'], 5, 6, 7, 8)
(['c', 'v', 'b'], 5, 6, 7, 8)
['c', 'v', 'b']
c v b **
def test01(x,**kwargs):
print(x)
print(kwargs) test01(1,name="charon",age=10) 结果:
1
{'name': 'charon', 'age': 10} 结合:*args千万不能在后面,否则报错,位置参数必须在关键字参数前面
def test01(x,*args,**kwargs):
print(x)
print(args,args[1])
print(kwargs) test01(1,"vv",2,"bb",name="charon",age=10) 结果:
1
('vv', 2, 'bb') 2
{'name': 'charon', 'age': 10}

day14 Python函数之可变长参数的更多相关文章

  1. python基础语法5 函数定义,可变长参数

    函数 1.什么是函数 函数就是一种工具. 可以重复调用 2.为什么要用函数 1.防止代码冗(rong)余 2.代码的可读性差 3.怎么用函数 1.定义函数-->制造工具 2.调用函数--> ...

  2. python学习笔记-函数与可变长参数

    一.函数 1. def test(x): y=x+1 return yprint(test) #这是打印函数在内存中的地址 过程:就是没有返回值的函数 在python中过程也是函数,就算没哟返回值,也 ...

  3. 在Python中使用可变长参数列表

    函数定义 在函数定义中使用*args和**kwargs传递可变长参数. *args用作传递非命名键值可变长参数列表(位置参数); **kwargs用作传递键值可变长参数列表 函数调用 在调用函数时,使 ...

  4. python中非关键字可变长参数和关键字变量参数的区别

    #非关键字可变长参数 def add(*arg):    return type(arg) print add() #打印结果 <type 'tuple'> #关键字变量参数 def ab ...

  5. python 函数可变长参数

    python中的可变长参数有两种: 一种是非关键字参数(*元组),另一种是关键字参数(**字典) 非关键字可变长参数: """ 非关键字可变参数,一个星号作为元组传入函数 ...

  6. Noah的学习笔记之Python篇:函数“可变长参数”

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  7. Python中函数的参数传递与可变长参数

    转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...

  8. go实例—函数或方法的可变长参数

    支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数. 需要注意的是,可变长参数应该是函数定义的最右边的参数,即最后一个参数 package ...

  9. 【0809 | Day 12】可变长参数/函数的对象/函数的嵌套/名称空间与作用域

    可变长参数 一.形参 位置形参 默认形参 二.实参 位置实参 关键字实参 三.可变长参数之* def func(name,pwd,*args): print('name:',name,'pwd:',p ...

随机推荐

  1. httpclient请求服务的各种方法实例

    <!--话不多说,直接上代码--> import com.csis.ConfigManagerimport com.csis.io.web.DefaultConfigItemimport ...

  2. html页面字体相关

    <!doctype html> <html> <head> <meta charset="utf-8"/> <title> ...

  3. Java集合框架——jdk 1.8 ArrayList 源码解析

    前言:作为菜鸟,需要经常回头巩固一下基础知识,今天看看 jdk 1.8 的源码,这里记录 ArrayList 的实现. 一.简介 ArrayList 是有序的集合: 底层采用数组实现对数据的增删查改: ...

  4. IIS7下,显示PHP错误(不显示500错误,而显示详细错误)

    玛德,IIS就是个坑,害得老子进行摸索了那么久,才找到了解决方法: 1.除了将php.ini配置为: display_errors = on; error_reporting = E_ALL & ...

  5. mysql 5.7 线程阻塞处理

    出现的错误: ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 解决办法: 查看sleep的进程 m ...

  6. 微软Azure AspNetCore微服务实战 第二期

    2018新年快乐!继第1期微服务技术交流活动后(http://www.huodongxing.com/event/4403161781600),本次我们将与上海的小伙伴们继续深入分享微服务技术的应用实 ...

  7. 数据库开源框架GreenDao的使用解析

    数据库开源框架GreenDao的使用解析 1,GreenDao概述 1),greenDao是一个当下十分火热的数据库开源框架,或者说是一个帮助Android开发者将数据存到SQLite中的一个开源项目 ...

  8. 生产者与消费者+Queue(线程安全)

    from queue import Queue from lxml import etree import requests from urllib import request from threa ...

  9. Spooling Directory Source使用技巧

    1.使用文件原来的名字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 a1.sources=r1   a1.sinks=k1   a1.sources.r1.ty ...

  10. OneAPM大讲堂 | Metrics, Tracing 和 Logging 的关系

    [编者按]这是在 OpenTracing 和分布式追踪领域内广受欢迎的一片博客文章.在构建监控系统时,大家往往在这几个名词和方式之间纠结. 通过这篇文章,作者很好的阐述了分布式追踪.统计指标与日志之间 ...