Python裝飾器

裝飾器(Decorators)是python的一個重要部分簡單地說 python

他們是修改其餘函數的功能的函數。函數

有助於讓咱們的代碼更加簡短  也更加pythonic 對象

最難掌握的概念之一變量

------裝飾器

一切皆對象co

---------return

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)

----------

相關文章
相關標籤/搜索