zoukankan      html  css  js  c++  java
  • 函数的进阶

    一、函数参数—动态传参

    1、动态的接收位置参数

     参数位置编写* 表示接收任意内容,有多个参数传进去,收到的内容是元组tuple

    def func(*food):
        print(food)
    func("","米饭","面包","馒头")


    先位置参数,后动态参数

    def chi(a,b,*food):
        print(a,b,food)
    chi("米饭","面条","","","小菜")

    默认值参数

    def chi(a,b,*food,c="哇哈哈"):
        print(a,b,food,c)
    chi("腊肠","甜点","油条","大面包")      #默认值生效

    2、动态接收关键字参数
    在python中使用**来接收动态关键字参数

    def fun(**args):
        print(args)
    fun(a=1,b=2,c=3,d=4)

    在上面的程序中接收到是:字典
    最终的顺序:

    位置参数>*args>默认值参数>**kwargs

    这四种参数可以任意使用

    如果想接收所有的参数,用*args和**kwargs

    def func(*args,**kwargs):
        print(args,kwargs)
    func("小明","18",a=1,b=2)

    动态参数的另一种传参方式

    def func(*args):
        print(args)
    lst = [1,2,3,4,5]
    func(lst[0],lst[1],lst[2],lst[3],lst[4])


    在实参位置上给一个序列,列表,可迭代对象前面加*表示把这个序列安位置打散

    def func(*args):
        print(args)
    lst = [1,2,3,4,5]
    func(*lst)


    在形参的位置上,加*表示聚合

    如果是一个字典,也可以进行打散,但需要两个*

    def func(**kwargs):
        print(kwargs)
    dic = {"a":1,"b":2,"c":3}
    func(**dic)

    3、函数的注释

    def func(a,b):
        '''
                           这里是函数的注释,解释一下这个函数是干什么的
        :param a:          参数a是干什么的
        :param b:          参数b是干什么的
        :return:           返回的是啥
        '''
        print(a,b)

    二、命名空间
    1、全局命名空间——我们在py文件中,在函数外声明的是变量叫全局命名空间

    2、局部命名空间——在函数中声明的变量叫局部命名空间

    3、内置命名空间——python解释器为我们提供的名字,如:list  tuple  str  int  都是内置命名空间

    加载顺序

    内置命名空间、全局命名空间、局部命名空间(函数被执行的时候)

    取值顺序

    局部命名空间、全局命名空间、内置命名空间

    作用域

    1、全局作用域:全局命名空间+内置命名空间

    2、局部作用域:局部命名空间

    我们可以通过globals()查看全局作用域的内容,也可以用locals()查看局部作用域的内容

    三、函数的嵌套

    global表示:不在使用局部作用域中的内容,而改用全局作用域的变量

    nonlocal表示:在局部作用域中,使用父级局部命名空间的变量

  • 相关阅读:
    php+mysql 实现无限极分类
    php 开启微信公众号开发者模式
    PHP对象继承
    phpexcel导出数字带E的解决方法
    jquery layui的巨坑
    jquery jssdk分享报错解决方法
    javascript腾讯地图放到网页中的方法
    jquery手机端横屏判断方法
    javascript 字符串转化成函数执行
    PHP创建文件命名中文乱码解决的方法
  • 原文地址:https://www.cnblogs.com/sypx/p/9449961.html
Copyright © 2011-2022 走看看