1.形参变量和实参

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

实参:可以是常量,变量,表达式等,无论实参是何种类型的量,在进行函数调用时,它们都必须有稳定的值,因此应预先用赋值,输入等办法使参数获得稳定值。

例:def calc(x,y):

             res = x*y

             return res

       c= calc(a,b)

       print(c)

此时x和y为形参变量,a和b为实参

2.非固定参数

#元祖形式(*args)

如果参数中出现*,传递的参数就不再是个固定的个体了,传过来的所有参数打包成一个元祖

方法一:

def   send_alarm(msg,*users):  #带*参数一般都用*args表示

        for  i  in users:

        print("报警",i)

send_alarm("aaa","alex","gao","hong")  #此时的"alex","gao","hong"都传到了*users中

输出为:

报警",alex

报警",gao

报警",hong

#方法二:
send_alarm("aaa",*["alex","gaohui","hong"])  #此时的"alex","gaohui","hong"都传到了*user中

def  alarm(msg,*user,age):
  for i in user:
  print("aaa",i)
alarm("aaa","alex","gaohui","hong",age=22)#当位置参数在带有*参数的后面时,实参必须要用关键参数

#元祖和字典形式

def func(name,*args,**kwargs):
  print(name,args,kwargs)
func("aa",1,2,3,4)#此时1,2,3,4全部属于args元祖里面
打印结果: aa,(1,2,3,4)
func("aa",1,2,3,age=23,old="bb")#此时1,2,3属于args元祖里面,age=23,old="bb"属于kwargs字典里面
打印结果: aa,(1,2,3,4){"age"=23,"old"="bb"}
d={"degree":"primary school"}
func("aa",d)#此时d这个字典在args元祖里面
打印结果:aa,({"degree":"primary school"},)
func("aa",**d)#此时d这个字典在kwargs字典里面
打印结果:aa,(),{
"degree":"primary school"}

3.关键参数

关键参数定义规则:

1.关键参数不能放在位置参数前面

print("aaa",job="python",21)此时位置参数21放在了job="python"关键参数后面,所以会报错

2.关键参数被定义了一个量以后,不能再被定义第二个量

print("aaa",age=23,21)此时关键参数已经给age赋过值,再赋21会报错

正确的方式:def introduct(name,age,job,country="cn"):

           print("-----introduct-------")
     print(name,age,country,job)       print("aaa",age=23,"job"="salary")

4.默认参数

def introduct(name,age,job,country="cn")
print("-----introduct-------")
print(name,age,job,country) introduct("gaohui",21,"python")
introduct("hongyan",23,"java")
introduct("gaohuiaa",23,"it","python1")

此时的country就是默认参数,默认参数必须放在非默认参数后面,当你不想要参数为默认值时,可以再对应的位置写值,此时默认参数的值就会被替换。

总结:

排列顺序:位置参数 关键参数 默认参数

python参数的更多相关文章

  1. Python参数笔记

    Python参数 1. 普通参数 必须要传入和定义时个数相同的参数 def miao(acfun, bilibili): print(acfun, bilibili) miao(11, 22) > ...

  2. Python参数基础

    Python参数基础 位置参数 ​ 通过位置进行匹配,把参数值传递给函数头部的参数名称,顺序从左到右 关键字参数 ​ 调用的时候使用参数的变量名,采用name=value的形式 默认参数 ​ 为没有传 ...

  3. Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数

    Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数 一.Python参数类型 形参:定义函数时的参数变量. 实参:调用函数时使用的参数变量. 参数传递的过程 ...

  4. python 参数定义库argparse

    python 参数定义库argparse 这一块的官方文档在这里 注意到这个库是因为argparse在IDE中和在ipython notebook中使用是有差异的,习惯了再IDE里面用,转到ipyth ...

  5. python 参数类型理解

    简介 大家都知道,在java中,函数或者方法的参数在调用时必须对其进行传参操作,也就是所谓的必选参数,也可以称为位置参数,除此之外,python还拥有其他语言不具有的一些参数类型,以下将进行一一介绍. ...

  6. python 参数

    摘自:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00137473844933 ...

  7. python 参数的组合

    现在我们知道python定义函数的参数类型有:必选参数 默认参数 可变参数 关键字参数 但是在我们日常中我们是可以组合使用这些参数的:但是使用的时候,参数定义是有顺序的 定义的顺序必须是:必选参数,默 ...

  8. <转>Python 参数知识(变量前加星号的意义)

    csdn上的牛人就是多,加油 —————————————————————————— 过量的参数 在运行时知道一个函数有什么参数,通常是不可能的.另一个情况是一个函数能操作很多对象.更有甚者,调用自身的 ...

  9. python参数传递方式

    原文地址:http://www.cnblogs.com/zhaopengcheng/p/5492183.html python中一切皆对象,函数中参数传递的是对象的引用. 1在函数中改变变量指向的对象 ...

随机推荐

  1. 【docker】将Java jar文件生成镜像、上传镜像并生成镜像压缩文件

    概述 将Springboot的web服务打包成Jar包后,自动化脚本将jar打包成镜像.上传镜像.并生成镜像的压缩文件: Dockerfile FROM 10.254.9.21/library/ora ...

  2. Github访问速度慢和下载慢的解决方法

    原因 为什么访问速度慢.下载慢?github的CDN被某墙屏了,由于网络代理商的原因,所以访问下载很慢.Ping github.com 时,速度只有300多ms. 解决方法 绕过dns解析,在本地直接 ...

  3. C++Primer第五版——习题答案详解(九)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第10章 泛型算法 练习10.1 #include<iostream> #i ...

  4. JavaSE中的小知识点分析

    1.System.out.println(); 调用System类中的public static final PrintStream out,输出为PrintStream(字节形式的输出流,为Outp ...

  5. SpringMVC工作原理示意图

    上面的是springMVC的工作原理图: 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中 ...

  6. jdk 8 日期处理。

    ZoneId id = ZoneId.systemDefault(); LocalDateTime dateTime = LocalDateTime.now(id); System.out.print ...

  7. mysql 5.7 配置

    MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果是msi格式的可以直接点击安装. zip格式是自己解压,解压缩之后其实MySQL,配置完就可以使用了. 1,配置环境变量很简单: ...

  8. 子页面调整父亲页面的iframe元素

    $('iframe', parent.document).attr('scrolling','no');

  9. SOA和微服务的原则及对比

    一.面向服务设计的原则 服务可复用:不管是否存在即时复用的机会,服务均被设计为支持潜在的可复用 服务共享一个标准契约:为了与服务提供者交互,消费者需要导入服务提供者的服务契约,这个契约可以是一个IDL ...

  10. 目标检测框架py-faster-rcnn修改anchor_box

    众所周知,anchor_box控制了回归框的大小,我们有时候检测的是大物体或小物体时,需要调整回归框的大小的时候,得改一下anchor_box.基于rgb公开的py-faster-rcnn修改anch ...