zoukankan      html  css  js  c++  java
  • day 9

    1、形参:定义函数时括号内的参数,其实就是变量名

         实参:调用函数时,括号内的传入值,其实就是变量值

    注意:实参与形参的绑定关系只在调用时才会生效,在函数调用结束后立即解除

    2、位置参数:

    位置即顺序,按照从左往右的顺序定义。

    在定义函数时按位置定义形参,称为位置形参

    调用函数必须为其传值,多一个不行,少一个也不行

    调用函数时,按位置定义实参,称为位置实参

    实参与形参必须一一对应

    def foo(x,y,z):
    print(x,y,z)
    foo(1,2,3)
    foo(1,z=3,y=2)
    foo(x=1,y=3,z=5)

    关键字参数
    在调用函数时,按照key=value形式定义

    相当于指名道姓为形参传值,即使不按照顺序也能为指定参数传值
    在调用函数时,位置实参与关键字实参可以混合使用,但必须遵循形参规则
    不能为同一个形参重复传值
    位置必须放到关键字实参前面

    
    



    默认参数
    在定义阶段,已为某个形参赋值,那么该形参就称为默认参数
    定义阶段已经有值,就意味着调用阶段可以不传值

    位置形参必须在默认参数前面
    默认参数值只在定义阶段赋值一次,后面再赋值也就无意义了

    默认参数值应为不可变odga
    def register(name,age,sex='mail'):
    print(name,age,sex)
    register('a',18)
    register('b',45)
    register('b', 45,'c')

    m='a'
    def register(name,age,sex=m):
    print(name,age,sex)
    m='11111111111'
    register('a',12)
    register('b',18)

    def register(name,age,l=[]):
    l.append(age)
    print(name,age,l)
    register('a',14)
    register('b',46)

    def regediter(name,age,l=None):
    if l==None:l=[]
    l.append(age)
    print(name,age,l)
    regediter('a',19)
    regediter('b',12)

    可变长度参数
    指参数个数不固定,实参有按位置和关键字定义,因实参给形参传值,所以形参必须有应对的两种方法解决
    形参
    *args *会将溢出的拉置实参全部接收,保存成元组给args
    **kwargs**会将溢出的关键字实参全部接收,然后保存成字典赋给kwargs

    实参
    一量碰到*就把该实参打散
    def foo(x,y,*args):
    print(x,y,args)
    foo(1,2,3,4,5,6)
    foo(1,2,[1,2,3,4])
    foo(1,2,*[1,2,3])
    foo(1,2,*'hello')
    一旦碰到**就把字典打散
    def foo(x,y,**kwargs):
    print(x,y,kwargs)
    foo(x=1,y=1,z=5,a=7)
    foo(1,2,c=5,a=8)
    foo(1,2,**{'a':1,'b':2})


    解释器
    def index(name,age,gender):
      print('welcom%s%s%s'%(name,age,gender))
    def wrapper(*arge,**kwarge):
      index(*arge,**kwargs)
    wrapper('lige',18,'mail')
  • 相关阅读:
    DispatcherServlet?
    解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法?
    面向对象的特征有哪些方面?
    服务调用是阻塞的吗?
    构造器Constructor是否可被override?
    迭代器和枚举之间的区别?
    Kafka 判断一个节点是否还活着有那两个条件?
    数据传输的事务定义有哪三种?
    mq 的缺点 ?
    如何获取 topic 主题的列表?
  • 原文地址:https://www.cnblogs.com/lg04551/p/8657380.html
Copyright © 2011-2022 走看看