zoukankan      html  css  js  c++  java
  • 动态传参

    1.动态参数(形参的一种方式),可以接收任意的参数.

    1).位置参数的动态传参,写法:*参数名.

    接收的参数是tuple类型,不能接受关键字.

        def   eat(**kwargs):      #**关键字参数

          print(kwargs)

        eat(food = "主食",junk = "火锅",drink = "脉动")

    2)关键字参数的动态传参,写法是:**参数名

    例如:  **kwargs           接受的参数类型是字典,关键字参数必须放在最后面.

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

            print(args,kwargs)

          nana(1,4,7,a = 10,b = 34,c = 56)

    def   eat(*fruit):     #聚合成元组

      print(fruit)

    lst = ["香蕉","苹果","大白梨","桃子"]

    eat(*lst)                 #这里的*表示的是把lst打散.

    def   eat(**kwargs):         #把所有的关键字参数聚合成字典.

      print(kwargs)

    dic = {"a":1,"b":2,"c":3}

    eat(**dic)        #打散字典,依次传参.

    *   **  在形参表示聚合,在实参表示打散.

    def   read(*args):

      print(args)

    read(*"你好啊")

    print(globals()) 打印全局作用域中的内容,

    print(locals())打印局部作用域中的内容.又可以理解为打印当前这个函数局部作用域的内容.

    2.作用域的问题

    1)globals()获取全局作用域中的内容

    2)locals()获取局部作用域的内容

    三.函数的嵌套

    只要遇见了()就是函数的调用,没有()就不是函数的调用.

    a = 10

    def  func():

      global  a         #这里用的是全局的,在局部作用域空间访问全局作用与

      a = 20

      print(a)

    func()

    print(a)

    a = 10

    def   func1():

      a = 20

      print(a)

      def  func2():

        nonlocal   a     #调用上一级的变量,且不能是全局

        a = 30

        print(a)

      fun2()

      print(a)

    func1()

    print(a)

    global:寻找全局作用域中的内容.

    nonlocal:寻找上一级作用域中的内容,且不能是全局.

    def   func():

      print("哈哈哈哈哈")

    a = func          #函数可以赋值,a和func是一回事了

    a()

  • 相关阅读:
    系统数据库如何恢复Master数据库
    在Orderby子句中使用CASE 语句
    SQL NOTECURSOR
    MVC 中静态文件部分动态化
    SQL NOTCTE
    Get data style from Excel
    SQL NOTPARTITION
    LAMDA表达式学习
    SQL NOTEVARIABLE
    起II6.0中使用windows2003自带的虚拟主机管理系统
  • 原文地址:https://www.cnblogs.com/fengkun125/p/9174243.html
Copyright © 2011-2022 走看看