• 动态传参


    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()

  • 相关阅读:
    以淘宝商品搜索漫谈查询条件的排序对效率的影响(SQL查询性能优化,附调优(性能诊断)DMV)
    监测ASP.NET MVC网站
    在WCF中使用Ninject轻量级IOC框架 之 SOAP风格服务
    敏捷——SCRUM
    《scrum敏捷软件开发》读书笔记
    【双旦献礼】PortalBasic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
    前端架构
    Android源码学习之如何使用eclipse+NDK
    mass Framework attr模块 v3
    【转】iOS 6版本与之前版本差异总结
  • 原文地址:https://www.cnblogs.com/fengkun125/p/9174243.html
Copyright © 2020-2023  润新知