1. 程式人生 > >裝飾器,生成器

裝飾器,生成器

bsp 註意 獲取 **kwargs 返回 func nbsp def 內部

裝飾器

  作用:

    用於擴展原函數功能的一種函數

    將被裝飾函數函數作為參數傳入,裝飾器內部定義一個函數,內部函數的作用是調用被裝飾函數,定義新功能,為被裝飾函數傳遞參數,最後要返回定義的函數

  實例: 

  import time
  def func2(fun):
  def func3(*args,**kwargs):
   print(‘輸入數據是‘,args)
  fun(*args,**kwargs)
   return func3

  @func2
  def func(a, b):
   print("hello,here is a func for add :")
   time.sleep(1)
   print("result is %d" % (a + b))

  func(2,5)

生成器

  通過邊循環邊計算的方式生成列表,避免一次創建列表占用大量內存的問題

  註意列表生成式和生成器之間的差別:

    l=[x*x for x in range(10)] #列表生成式,一次創建列表,占用內存

    g=(x*x for x in range(10)) #生成器,通過next(g)或for循環獲取

裝飾器,生成器