1. # def foo(x):
    # print(x)
    #
    #
    # foo(1)
    # foo('a')
    # foo({'a':2})
  2.  
  3. #形参与实参:
    # def foo(x,y): #x=1,y=2
    # return x+y
    #
    # foo(1,2)
  4.  
  5. #===================================part1
    #位置参数:按照从左到右的顺序依次定义的参数
  6.  
  7. def foo(x,y):
    print(x)
    print(y)
    #按位置定义的形参,必须被传值,多一个不行,少一个也不行
  8.  
  9. # foo(1,2,3)
  10.  
  11. #按位置定义的实参,与形参一一对应
    # foo(2,10)
  12.  
  13. #===================================part2
    #关键字参数:实参在定义时,按照key=value形式定义
    # def foo(x,y):
    # print(x)
    # print(y)
    #
    # # foo(y=10,x=1)
    # foo(y=10,x=1) #关键字参数可以不用像位置实参一样与形参一一对应,指名道姓地传值
  14.  
  15. def foo(x,y):
    print(x)
    print(y)
  16.  
  17. # foo(1,10)
    # foo(x=1,y=10)
    # foo(1,y=10)
    # foo(y=10,1)
    # foo(x=10,1)
  18.  
  19. # foo(1,x=10,y=20)
  20.  
  21. # def foo(x,y,z):
    # print(x)
    # print(y)
    # print(z)
    # # foo(1,z=20,10)
    # foo(1,y=2,z=10)
    #注意的问题一:位置实参必须在关键字实参的前面
    #注意的问题二:实参的形式既可以用位置实参又可以是关键字实参,但是一个形参不能重复传值
  22.  
  23. #===================================part3
    #默认参数:在定义函数阶段,就已经为形参赋值,定义阶段有值,调用阶段可以不用传值
    # def func(x,y=10):
    # print(x)
    # print(y)
  24.  
  25. # func(1,20)
    # func(1)
  26.  
  27. # def func(y=10,x):
    # print(x)
    # print(y)
  28.  
  29. #位置实参
    #关键字实参
  30.  
  31. #位置形参
    #默认参数(形参)
  32.  
  33. #形参的应用:值经常变化的需要定义成位置形参,
    # 值大多数情况下都一样,需要定义成默认参数
    # def register(name,age,sex='male'):
    # print(name,age,sex)
    #
    # register('alex',1000)
    # register('wupeiqi',9000)
    # register('yuanhao',10000)
    # register('王铁蛋',10000,'female')
  34.  
  35. #默认参数需要注意的问题一:必须放在位置形参后面
    #默认参数需要注意的问题二:默认参数通常要定义成不可变类型
    #默认参数需要注意的问题三:默认参数只在定义阶段被赋值一次
    # x=10
    # def func(name,age=x):
    # print(name)
    # print(age)
    # x=20
    #
    # func('egon')
  36.  
  37. # def func(name,age=10,sex='male',hobby=['play1','play2']):
    # print(name)
    # print(age)
    # print(hobby)
    #
    # func('egon')
  38.  
  39. #===================================part4
    #可变长参数:可变长指的是实参的个数不固定
    #按位置定义的可变长度的实参:*
    #按关键字定义的可变长度的实参:**
  40.  
  41. #
    # def func(x,y,*args): #x=1,y=2,args=(3,4,5,6)
    # print(x,y)
    # print(args)
    #
    # func(1,2,3,4,5,6)
  42.  
  43. # def func(x,y,*args): #args=(3,4,5,6)
    # print(x,y)
    # print(args)
    #
    # func(1,2,*(3,4,5,6)) #foo(1,2,3,4,5,6)
  44.  
  45. # def func(x,y,z):
    # print(x,y,z)
    #
    # # func(1,*(2,3)) #func(1,2,3)
    # func(*(2,3)) #func(2,3)
  46.  
  47. #
    # def func(x,y=2,z=1):
    # print(x,y,z)
    #
    #
    # func(*('a','b','c')) #func('a','b','c')
  48.  
  49. # def func(x,y,**kwargs): #x=1,y=2,kwargs={'a':1,'b':3,'z':3}
    # print(x,y)
    # print(kwargs)
    #
    # func(1,y=2,z=3,a=1,b=3)
  50.  
  51. # def func(x,y,**kwargs): #x=1,y=2,**kwargs=**{'a':1,'b':3,'z':3}
    # print(x,y)
    # print(kwargs)
    #
    # func(1,y=2,**{'a':1,'b':3,'z':3}) #func(1,y=2,z=3,b=3,a=1)
  52.  
  53. # def func(x,y=1,z=1):
    # print(x,y,z)
    #
    # func(**{'y':2,'x':1,'z':3}) #
  54.  
  55. # def wrapper(*args,**kwargs): #可以接受任意形式,任意长度的参数
    # print(args)
    # print(kwargs)
    #
    #
    # wrapper(1,2,3,3,3,3,3,x=1,y=2,z=3)
  56.  
  57. #
    # def index(name,group):
    # print('welcome %s to index page,group is: %s' %(name,group))
    #
    # def wrapper(*args,**kwargs): #可以接受任意形式,任意长度的参数
    # # print(args) #args=(1,2,3)
    # # print(kwargs) #kwargs={'x':1,'y':2,'z':3}
    # index(*args,**kwargs) #index(*(1,2,3),**{'x':1,'y':2,'z':3}) #index(1,2,3,z=3,y=2,x=1)
    #
    # wrapper(name='egon',group='group1')
  58.  
  59. #命名关键字参数:定义在*后的形参,这类形参,必须被传值,而且要求实参必须是以关键字的形式来传值
  60.  
  61. # def register(**kwargs):
    # print(kwargs)
    # if 'name' in kwargs:
    # print(kwargs['name'])
    # if 'age' in kwargs:
    # print(kwargs['age'])
    #
    #
    # # register(name='egon',age=18)
    # register()
  62.  
  63. # def register(*args,name='egon',age):
    # print(args)
    # print(name)
    # print(age)
    #
    # # register(name='egon',age=18)
    # register(1,2,2,3,age=10)
  64.  
  65. #
    # def register(name,age,*,group,**kwargs):
    # print(name)
    # print(age)
    # print(kwargs)
    #
    #
    # # register('egon',18)
    # register('egon1',18,hobby='paly1',group='group1')
  66.  
  67. # def func(x,y=1,*args,z,**kwargs):
    # print(x)
    # print(y)
    # print(args)
    # print(z)
    # print(kwargs)
    #
    # func(1,2,3,4,5,z=10,a=1,b=2)
  68.  
  69. #
    # def func(x,*args,z=1,**kwargs):
    # print(x)
    # print(args)
    # print(z)
    # print(kwargs)
    #
    # func(1,2,3,4,5,a=1,b=2,c=3)
  70.  
  71. #形参:位置形参,默认参数,*args,命名关键字参数,**kwargs

# def foo(x,y=1,*args,z,**kwargs):
#     print(x)
#     print(y)
#     print(args)
#     print(z)
#     print(kwargs)
# foo(1,2,3,4,5,z=10,a=1,b=3) 

  1.   

有关python 函数参数的更多相关文章

  1. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  2. python函数参数的pack与unpack

    python函数参数的pack与unpack 上周在使用django做开发的时候用到了mixin(关于mixin我还要写一个博客专门讨论一下,现在请参见这里),其中又涉及到了一个关于函数参数打包(pa ...

  3. Python 关于Python函数参数传递方式的一点探索

    关于Python函数参数传递方式的一点探索 by:授客 QQ:1033553122 实践代码 #!/usr/bin/env python # -*- coding:utf-8 -*- __author ...

  4. python 函数参数介绍

    python 函数参数介绍 python 使用过程总,总会遇到 *args,**kw形式的参数,总是一头雾水,而且网上介绍的或是叫法不一,为此专门深入实践进而了解了函数参数的使用 具体请看代码 #-* ...

  5. python函数参数类型及其顺序

    根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...

  6. Python 函数参数类型大全(非常全!!!)

    Python 函数参数类型大全(非常全!!!) 1.在python编写程序里面具有函数文档,它的主要作用是为了让别人可以更好的理解你的函数,所以这是一个好习惯,访问函数文档的方式是: MyFuncti ...

  7. Python函数参数默认值的陷阱和原理深究(转)

    add by zhj: 在Python文档中清楚的说明了默认参数是怎么工作的,如下 "Default parameter values are evaluated when the func ...

  8. python函数-参数

    python函数-参数 实验室 # 演示形参是可变类型 def register(name, hobby, hobby_list=[]): hobby_list.append(hobby) print ...

  9. 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)

    详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类   Python中函数参数定义及调用函数时传参 ...

  10. Python函数参数详解

    Python函数参数详解 形参与实参 什么是形参 在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名. 什么是实参 在调用函数阶段传入的值称为实际参数,简称实参.相当于"变量值& ...

随机推荐

  1. ActiveMQ消息的发送原理

    持久化消息和非持久化消息的发送策略:消息同步发送和异步发送 ActiveMQ支持同步.异步两种发送模式将消息发送到broker上.同步发送过程中,发送者发送一条消息会阻塞直到broker反馈一个确认消 ...

  2. svn上check下来的项目,用idea打开,菜单栏没有svn工具解决办法

    1.用idea打开你的项目(idea已经配置过小乌龟了) 2.菜单栏点击VCS,Enable Version Control Integration... 3.选择Subversion 4.这时候,菜 ...

  3. jmeter 中如何一次运行多条sql语句

    在jmeter测试mysql中如何一次运行多条sql语句 allowMultiQueries=true 注意:太低版本的mysql和jdbc不支持,最好用最新版的

  4. 饮冰三年-人工智能-Python-14Python基础之变量与函数

    1:函数:函数是逻辑结构化和过程化的一种编程方法.函数即变量 #参数组:**字典 *列表 def test(x,*args): print(args); print(args[0]); print(& ...

  5. 饮冰三年-人工智能-linux-08 软件包管理(Python的安装)

    1:软件包存放的位置 media/CentOS_6.9_Final/Packages文件夹下 2.RPM就是Red Hat Package Manger(红帽软件包管理工具)的缩写. 2.1 常用的命 ...

  6. 如果IDEA右上角的tomcat消失了,解决办法

    看了很多博客都没有找到解决办法,还是老师帮我解决的

  7. OpenAuth.Net.landv分支之旅开始制作CRM系统

    OpenAuth.Net.landv分支之旅开始制作CRM系统 这个事件的由来是因为没有一个统一的会员卡平台系统,目前需要连接三家酒店会员系统,由于三家酒店使用了三种酒店管理系统,彼此之间的耦合低.三 ...

  8. nginx 域名泛解析

    部分应用场景下要求服务器根据客户输入的二级域名地址自动访问不同的页面,比如一个服务器放置了不同的业务,商城.官网等多个业务,又不想一个个配置server, 网站目录结构入戏: html 网站根目录 m ...

  9. 【Android】Android WebView 网页输入框获取焦点

    webView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEv ...

  10. SQL Server中自定义函数:用指定的分隔符号分割字符串

    微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对 ...