zoukankan      html  css  js  c++  java
  • Python装饰器

    装饰器(Decorators)是python的一个重要部分简单地说 

    他们是修改其他函数的功能的函数。

    有助于让我们的代码更加简短  也更加pythonic 

    最难掌握的概念之一

    ------

    一切皆对象

    ---------

    def  hi(name="yasoob"):

      return "hi"+name

    print(hi())

    #output:'hi yasoob'

    我们甚至可以将一个函数赋值给一个变量

    比如greet=hi

    #这里我们没有使用小括号 因为我们不是在调用hi函数

    #而是将它放在greet变量里头 我们尝试运行下这个

    print(greet())

    #output:'hi yasoob'

    如果我们删除旧的hi函数 看看会发生什么

    del hi

    print(hi())

    #output:NameError

    print(greet())

    #output:'hi yasoob'

    -----------

    在函数中定义函数

    ---------

    def hi(name="yasoob"):

      print("现在你在hi()中")

      

      def greet():

        return "现在你在greet()函数"

      def welcome():

        return "现在你在welcome函数"

      print(greet())

          print(welcome())

      print("现在你回到hi()函数里面")

    hi()

    #output:现在你在hi()中

        现在你在greet()函数

        现在你在welcome函数

        现在你回到hi()函数里面

    #上面展示了无论何时你调用hi()  greet() welcome()将会同时被调用

    #然后greet() 和welcome()函数在hi()函数之外是不能访问的

    greet()

    #output:NameError:name 'greet' is not  defined

    ------------------------

    可以嵌套的函数  函数也可以返回函数

    --------

    从函数从返回函数

    ---------

    其实不需要再一个函数里去执行 另外一个函数 我们也可以将其 作为输出返回出来

    def  hi(name="yasoob"):

      def greet():

        return "现在你在greet()函数"

      def welcome():

        return "现在你在welcome()函数"

           if name=="yasoob":

         return greet

           else:

         return welcome

    a=hi()

    print(a)

    ----------

  • 相关阅读:
    学习源代码时的笨方法
    初步学习pg_control文件之十五
    初步学习pg_control文件之十四
    初步学习pg_control文件之十三
    fsync体会
    初步学习pg_control文件之十二
    初步学习pg_control文件之十一
    初步学习pg_control文件之十
    初步学习pg_control文件之九
    JS与原生OC/Swift相互调用总结
  • 原文地址:https://www.cnblogs.com/yizhixuepython/p/9239904.html
Copyright © 2011-2022 走看看