zoukankan      html  css  js  c++  java
  • Python之路Day10

    函数的进阶

    动态参数

    • def eat(*args,**kwargs):  #函数定义阶段,*聚合(打包)
         print(args)  #tuple
         print(kwargs)  #dict
         print(*kwargs)  #dict的键
         print(*args)  #函数体中的* 打散(解包)
      • 动态位置参数(args只是约定俗成的,其实可以改变)

    • 位置参数>动态位置参数>默认参数>动态默认参数

    • **kwargs -- 输出的是字典

    • 动态位置参数:限制性位置参数,位置参数接受后额外的参数动态位置参数进行接收,获取的是一个元组

    • 动态关键字参数:先执行默认参数,默认参数接受后额外的默认参数动态默认参数进行接收

    • 实参:字典中的键不能使用数字

    函数的注释

    • ._doc_ -- 查看注释

    • ._name_ -- 查看函数的名字

    名称空间

    • 内置空间

      • Python解释器自带的空间

    • 全局空间

      • Py文件中顶格写的就是全局空间

    • 局部空间

      • 函数体中就是局部空间

    • 加载顺序:内置空间>全局空间>局部空间

    • 取值顺序:局部>全局>内置

    • 作用域:保护数据的安全性

      • 全局作用域:全局+内置

      • 局部作用域:局部

    函数嵌套

    • 不管在什么位置,只要是函数名+()就是在调用一个函数

    global nonlocal

    global
    • 修改全局

    • a=100
      def func():
          global a
          a=a-50
          print(a)
      print(a)
      func()
      print(a)
      结果:100
           50
           50
      

        

    nonlocal
    • 修改局部,修改距离nonlocal最近的一层,如果没有则向上一层查找,只限在局部

    • a=10
      def func():
          a=5
          def foo():
              a=3
              def f1():
                  nonlocal a
                  a=a+5
                  print(a)
              f1()
              print(a)
          foo()
          print(a)
      func()
      print(a)
      

        

    •  

  • 相关阅读:
    ansible 通过跳板机发布服务
    etcd API 神坑
    golang 条件编译
    服务治理
    golang web服务器处理前端HTTP请求跨域的方法
    rebar使用
    Apache/Tomcat/JBOSS/Jetty/Nginx/WebLogic/WebSphere之间的区别区别
    运维专家写给年轻运维的6条人生忠告
    谷歌浏览器书签索引—知识的海洋都在里面
    关于认识、格局、多维度发展的感触
  • 原文地址:https://www.cnblogs.com/zlx960303/p/11954147.html
Copyright © 2011-2022 走看看