成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python中functools模塊使用及相關(guān)說明

89542767 / 358人閱讀


  這篇文章主要給大家講解的是,在python這門語言中,functools這門軟件使用方法,相關(guān)的代碼已經(jīng)給大家貼出來了,希望可以為大家能夠帶來一點(diǎn)幫助。


  partial


  用于創(chuàng)建一個(gè)偏函數(shù),將默認(rèn)參數(shù)包裝一個(gè)可調(diào)用對(duì)象,返回結(jié)果也是可調(diào)用對(duì)象。


  偏函數(shù)可以固定住原函數(shù)的部分參數(shù),從而在調(diào)用時(shí)更簡(jiǎn)單。


    from functools import partial
  int2=partial(int,base=8)
  print(int2('123'))
  #83


  使用partial包裝的函數(shù)是沒有__name__和__doc__屬性的。


  update_wrapper


      作用:將被包裝函數(shù)的__name__等屬性,拷貝到新的函數(shù)中去。


    from functools import update_wrapper
  def wrap2(func):
  def inner(*args):
  return func(*args)
  return update_wrapper(inner,func)
  wrap2
  def demo():
  print('hello world')
  print(demo.__name__)
  #demo
  

  warps


      函數(shù)是為了在裝飾器拷貝被裝飾函數(shù)的__name__。


  就是在update_wrapper上進(jìn)行一個(gè)包裝


  forom functools import wraps
  def wrap1(func):
  wraps(func)#去掉就會(huì)返回inner
  def inner(*args):
  print(func.__name__)
  return func(*args)
  return inner
  wrap1
  def demo():
  print('hello world')
  print(demo.__name__)
  #demo

  reduce


  在Python2中等同于內(nèi)建函數(shù)reduce


  函數(shù)的作用是將一個(gè)序列歸納為一個(gè)輸出


  reduce(function,sequence,startValue)
  from functools import reduce
  l=range(1,50)
  print(reduce(lambda x,y:x+y,l))
  #1225


  cmp_to_key


  在list.sort和內(nèi)建函數(shù)sorted中都有一個(gè)key參數(shù)


  x=['hello','worl','ni']
  x.sort(key=len)
  print(x)
  #['ni','worl','hello']


  Python3之前還提供了cmp參數(shù)來比較兩個(gè)元素


  cmp_to_key函數(shù)就是用來將老式的比較函數(shù)轉(zhuǎn)化為key函數(shù)


  ru_cache


  允許我們將一個(gè)函數(shù)的返回值快速地緩存或取消緩存。


  該裝飾器用于緩存函數(shù)的調(diào)用結(jié)果,對(duì)于需要多次調(diào)用的函數(shù),而且每次調(diào)用參數(shù)都相同,則可以用該裝飾器緩存調(diào)用結(jié)果,從而加快程序運(yùn)行。


  該裝飾器會(huì)將不同的調(diào)用結(jié)果緩存在內(nèi)存中,因此需要注意內(nèi)存占用問題。


  from functools import lru_cache
  lru_cache(maxsize=30)#maxsize參數(shù)告訴lru_cache緩存最近多少個(gè)返回值
  def fib(n):
  if n<2:
  return n
  return fib(n-1)+fib(n-2)
  print([fib(n)for n in range(10)])
  fib.cache_clear()#清空緩存


  singledispatch


  單分發(fā)器,Python3.4新增,用于實(shí)現(xiàn)泛型函數(shù)。


  根據(jù)單一參數(shù)的類型來判斷調(diào)用哪個(gè)函數(shù)。


  from functools import singledispatch
  singledispatch
  def fun(text):
  print('String:'+text)
  fun.register(int)
  def _(text):
  print(text)
  fun.register(list)
  def _(text):
  for k,v in enumerate(text):
  print(k,v)
  fun.register(float)
  fun.register(tuple)
  def _(text):
  print('float,tuple')
  fun('i am is hubo')
  fun(123)
  fun(['a','b','c'])
  fun(1.23)
  print(fun.registry)#所有的泛型函數(shù)
  print(fun.registry[int])#獲取int的泛型函數(shù)
  #String:i am is hubo
  #123
  #0 a
  #1 b
  #2 c
  #float,tuple
  #{<class'object'>:<function fun at 0x106d10f28>,<class'int'>:<function _ at 0x106f0b9d8>,<class'list'>:<function _ at 0x106f0ba60>,<class'tuple'>:<function _ at 0x106f0bb70>,<class'float'>:<function _ at 0x106f0bb70>}
  #<function _ at 0x106f0b9d8>

  以上就是小編整理的相關(guān)內(nèi)容,希望可以給大家?guī)韼椭?/p>


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/127620.html

相關(guān)文章

  • Python學(xué)習(xí)之路24-一等函數(shù)

    摘要:函數(shù)內(nèi)省的內(nèi)容到此結(jié)束。函數(shù)式編程并不是一個(gè)函數(shù)式編程語言,但通過和等包的支持,也可以寫出函數(shù)式風(fēng)格的代碼。 《流暢的Python》筆記。本篇主要講述Python中函數(shù)的進(jìn)階內(nèi)容。包括函數(shù)和對(duì)象的關(guān)系,函數(shù)內(nèi)省,Python中的函數(shù)式編程。 1. 前言 本片首先介紹函數(shù)和對(duì)象的關(guān)系;隨后介紹函數(shù)和可調(diào)用對(duì)象的關(guān)系,以及函數(shù)內(nèi)省。函數(shù)內(nèi)省這部分會(huì)涉及很多與IDE和框架相關(guān)的東西,如果平時(shí)...

    wind3110991 評(píng)論0 收藏0
  • Python的函數(shù)裝飾器和閉包

    摘要:變量查找規(guī)則在中一個(gè)變量的查找順序是局部環(huán)境,閉包,全局,內(nèi)建閉包引用了自由變量的函數(shù)。閉包的作用閉包的最大特點(diǎn)是可以將父函數(shù)的變量與內(nèi)部函數(shù)綁定,并返回綁定變量后的函數(shù),此時(shí)即便生成閉包的環(huán)境父函數(shù)已經(jīng)釋放,閉包仍然存在。 導(dǎo)語:本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之函數(shù)篇的重點(diǎn)知識(shí)及個(gè)人心得,打算入門Python的朋友們可以來一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、掌握裝飾器的本質(zhì)、功...

    caozhijian 評(píng)論0 收藏0
  • Django Web開發(fā)技術(shù)棧清單-Python基礎(chǔ)篇

    摘要:使用單引號(hào)雙引號(hào)和三引號(hào)或來表示字符串。不可變的集合函數(shù)會(huì)以字典類型返回當(dāng)前位置的全部全局變量。用于將進(jìn)制整數(shù)轉(zhuǎn)換成進(jìn)制,以字符串形式表示。返回字符串中最大的字母,或數(shù)組中的最大值。的作用就是減少了單行函數(shù)的定義。 問題答案由本人整理 1.基礎(chǔ)語法是否熟悉?介紹一下 Python和其他語言最大的區(qū)別就是使用行和縮進(jìn),而不是大括號(hào)({})或者分號(hào)(;)來控制類、函數(shù)或者邏輯判斷。Pyt...

    leeon 評(píng)論0 收藏0
  • Python_異常和模塊

    摘要:例如等價(jià)于到結(jié)束,但不包括。例如返回沒有每次跳躍的間距,默認(rèn)為。 異常處理 單個(gè)異常處理: try: print(num) except NameError: print(沒有定義變量) except FileNotFoundError: print(找不到文件路徑) print(1) 多個(gè)異常處理: try: print(num) # 1...

    piglei 評(píng)論0 收藏0
  • 流暢的python讀書筆記-第七章-函數(shù)裝飾器和閉包

    摘要:函數(shù)裝飾器和閉包嚴(yán)格來說,裝飾器只是語法糖。何時(shí)執(zhí)行裝飾器它們?cè)诒谎b飾的函數(shù)定義之后立即運(yùn)行。裝飾器突出了被裝飾的函數(shù)的作用,還便于臨時(shí)禁用某個(gè)促銷策略只需把裝飾器注釋掉。 函數(shù)裝飾器和閉包 嚴(yán)格來說,裝飾器只是語法糖。如前所示,裝飾器可以像常規(guī)的可調(diào)用對(duì)象那樣調(diào)用,其參數(shù)是另一個(gè)函數(shù)。有時(shí),這樣做更方便,尤其是做元編程(在運(yùn)行時(shí)改變程序的行為)時(shí)。 Python何時(shí)執(zhí)行裝飾器 它們?cè)?..

    Hydrogen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<