zoukankan      html  css  js  c++  java
  • python 动态传参,名称空间和作用域,函数的嵌套,global和nonlocal

    一、动态传参

      1.位置参数动态传参

      def func(*args):    *表示动态传参

      * 在这里表示接受位置参数的动态传参,接收到的是元组。

    def fun(*args):
        print(args)
        
    fun('aaa',3,5,6,'ccc')
    #  结果('aaa', 3, 5, 6, 'ccc')
    

      

      2.关键字的动态传参

      def func(**kwargs):    

        函数体(代码块)

      func(n=7,m="aa"):

      **表示接收关键字参数的动态传参,接收到的是字典。

    def fun(**kwargs):
        print(kwargs)
    
    fun(name="Tom",age="男",hobby="女")
    # 结果 {'name': 'Tom', 'age': '男', 'hobby': '女'}

        顺序:位置参数 => *arg(arguments)(位参动态传参)  => 默认值 => **kwargs(关键字参数)

           以上参数可以随意搭配使用

      3.函数的注释

      def  fun():

        """

        注释,说明这个函数用来干什么

        ”“”

      print(fun.__doc__)    #document文档

    def fun(a,b):
        """
        注释,说明这个函数用来干什么
        :param a:
        :param b:
        :return:
        """
        return
    fun(5,6)
    print(fun.__doc__)  #打印出函数的注释
    

      

      4.接收所有参数

      def fun(*args,**kwargs):    #无敌传参

        pass

      *,** 实参位置是打散

      *,** 形参位置是聚合

    def fun(*args,**kwargs):
        print(args,kwargs)
    li = ['r','n','g','w','i','n']
    dic = {'name': 'uzi','age':'男','hobby':'adc'}
    fun(*li,**dic)
    # 结果 ('r', 'n', 'g', 'w', 'i', 'n') {'name': 'uzi', 'age': '男', 'hobby': 'adc'}
    

      

    二、命名空间与作用域

      1.全局作用域:

        全局命名空间,内置命名空间

      2.局部作用域:

        局部命名空间

       globals() 可以查看全局作用域中的内容

      locals()    查看当前作用域中的内容

    a = 5  # 全局变量
    def fun():
        a = 10      #局部变量
        print(locals())
    
    print(globals())
    fun()
    

      

      函数的嵌套

        函数可以相互嵌套

    a = 1
    def fun():
        a = 5        
        def inner():
            a = 10   
            print(a)
        inner()
        print(a)
    print(a)
    fun()
    

      

      global

        1.可以把全局中的内容引入到函数的内部

        2.在全局创建一个变量

        (在函数内部想改变外部的值时会引用,全局变量本身就不安全,不能随意修改)

    a = 1
    def fun():
        global a
        a += 5
        print(a)  #  6
    print(a)   #  1
    fun()
    print(a)   #  6
    

      

      nonlocal 

        寻找外层函数中离他最近的那个变量

    a = 1
    def fun():
        a = 5
        def inner():
            nonlocal a
            a += 5
            print(a)    # 10
        print(a)        # 5
        inner()
        print(a)        # 10
    
    print(a)            # 1
    fun()
    print(a)            # 1
    

      

      

  • 相关阅读:
    04 16 团队竞技(第二场) 赛后总结
    HDU 1863 畅通工程 克鲁斯卡尔算法
    HUD 2544 最短路 迪杰斯特拉算法
    hdoj 4526 威威猫系列故事——拼车记
    HDU 3336 Count the string 查找匹配字符串
    Linux command line exercises for NGS data processing
    肿瘤基因组学数据库终结者:cBioPortal---转载
    lncRNA研究利器之"TANRIC"
    Python的collections模块中的OrderedDict有序字典
    python set
  • 原文地址:https://www.cnblogs.com/JinMuBaoBao/p/9450659.html
Copyright © 2011-2022 走看看