码迷,mamicode.com
首页 > 编程语言 > 详细

Python全栈__动态参数、名称空间、作用域、作用域链、加载顺序、函数的嵌套、global、nonlocal

时间:2018-09-04 19:51:38      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:rgs   分享   作用   info   turn   接收   不能   oca   名称空间   

1、动态参数

  当实参数量与形参数量相等时,参数传递正常。

def func1(a, b, c):
    pass
func1(1, 2, 3)

 技术分享图片

 

  当实参数量与形参数量不相等时,则会报错。

def func1(a, b, c):
    pass
func1(1, 2, 3, 4, 5, 6, 6)

 技术分享图片

 

  用户传入到函数中的实参数量不确定时,或者为了以后扩展,此时要用到动态参数 *args  **kwargs(万能参数)。

  顺序:

    位置参数,*args,默认参数,**kwargs

  1、*args

    *args是接收的是所有的位置参数。

def func(*args, **kwargs):
    print(args)
    print(kwargs)
func(1, 2, 3, 4)

 技术分享图片 

   注意:print()里面的args前面不能带 * 。

  2、**kwargs

     **kwargs接收的是所有的关键字参数。 

def func(*args, **kwargs):
    print(args)
    print(kwargs)
func(x=4, y=5, z=6)

 技术分享图片

   注意:print()里面的args前面不能带 * 。

 

def func(*args, **kwargs):
    print(args)
    print(kwargs)
func(1, 2, 3, x=4, y=5, z=6)

 技术分享图片

 

  顺序

    位置参数,默认参数

def func2(a, b, sex = ‘男‘):
    print(a)
    print(b)
    print(sex)
func2(1, 2, ‘女‘)

 技术分享图片

 

  位置参数、*args、默认参数

def func2(a, b,*args, sex = ‘男‘):
    print(a)
    print(b)
    print(args)
    print(sex)
func2(1, 2, 5,6,7,8,9, sex=‘女‘)

 技术分享图片

 

  位置参数、*args、默认参数、**kwargs

def func2(a, b, *args, sex=‘男‘,age=20, **kwargs):
    print(a)
    print(b)
    print(args)
    print(sex)
    print(age)
    print(kwargs)
func2(1, 2, 5, 6, 7, 8, 9, x=6, y=5, name=‘alex‘)

 技术分享图片

 

  加法器:

def sum1(*args):
    ret = 0
    for i in args:
        ret += i
    return ret
print(sum1(1, 2, 3,))

 技术分享图片

 

def func3(*args, **kwargs):
    print(args)
    print(kwargs)
l1 = [1, 2, 3]
l2 = [11, 21, 32]
func3(l1, l2)

 技术分享图片

 

def func3(*args, **kwargs):
    print(args)
    print(kwargs)
l1 = [1, 2, 3]
tu1 = (1, 2, 3)
tu2 = (11, 22, 33)
func3(*l1, *tu1, *tu2)

 技术分享图片

 

def func3(*args,**kwargs):
    print(args)
func3(1, 2, 3, 1, 2, 3, 11, 22, 33)

 技术分享图片

 

  在函数的定义中, * 是聚合的意思。

def func3(*args,**kwargs):
    print(args)
    print(kwargs)
l1 = [1, 2, 3]
dic ={‘name‘: ‘alex‘}
dic1 ={‘age‘: 1000}
func3(*l1, **dic, **dic1)

 技术分享图片

 

  * 的魔性用法:

def func3(*args,**kwargs):  # 函数的定义 *用意是聚合。
    print(args)
    print(kwargs)
l1 = [1, 2, 3]
tu1 = (1, 2, 3)
tu2 = (11, 22, 33)
func3(*l1, *tu1, *tu2)

 技术分享图片

 

def func3(*args,**kwargs):
    print(args)
    print(kwargs)
func3(1,2,3,1,2,3,11,22,33)

 技术分享图片

 

def func3(*args,**kwargs):
    print(args)
    print(kwargs)
l1 = [1, 2, 3]
dic ={‘name‘: ‘alex‘}
dic1 ={‘age‘: 1000}
func3(*l1, **dic, **dic1)

 技术分享图片

 

2、名称空间、作用域、作用域链、加载顺序

  1、空间名称

 

 

 

  2、作用域

 

 

 

  3、作用域链

 

 

 

  4、加载顺序 

 

 

 

 

3、函数的嵌套

 

 

 

4、global、nonlocal

   1、global

 

 

 

   2、nonlocal

 

 

 

 

 

 

Python全栈__动态参数、名称空间、作用域、作用域链、加载顺序、函数的嵌套、global、nonlocal

标签:rgs   分享   作用   info   turn   接收   不能   oca   名称空间   

原文地址:https://www.cnblogs.com/ZN-225/p/9587944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!