最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python利用裝飾器進(jìn)行運(yùn)算的實(shí)例分析

 更新時(shí)間:2015年08月04日 09:20:09   投稿:hebedich  
本文主要是通過(guò)使用Python的裝飾器來(lái)做一個(gè)運(yùn)算的實(shí)例,來(lái)給大家詳細(xì)介紹下Python的裝飾器,非常的實(shí)用,有需要的小伙伴可以參考下。

今天想用python的裝飾器做一個(gè)運(yùn)算,代碼如下

>>> def mu(x):
  def _mu(*args,**kwargs):
    return x*x
  return _mu

>>> @mu
def test(x,y):
  print '%s,%s' %(x,y)

>>> test(3,5)

Traceback (most recent call last):
 File "<pyshell#111>", line 1, in <module>
  test(3,5)
 File "<pyshell#106>", line 3, in _mu
  return x*x
TypeError: unsupported operand type(s) for *: 'function' and 'function'

原來(lái)是不能這樣弄的  函數(shù)與函數(shù)是不能運(yùn)算的啊!

怎么辦呢?

In [1]: from functools import wraps

In [2]: def mu(x):
  ...:     @wraps(x)
  ...:     def _mu(*args,**kwargs):
  ...:             x,y=args
  ...:             return x*x
  ...:     return _mu
  ...: 

In [3]: @mu
  ...: def test(x,y):
  ...:     print '%s,%s' %(x,y)
  ...:   

In [4]: test(3,4)
Out[4]: 9

Python裝飾器(decorator)在實(shí)現(xiàn)的時(shí)候,有一些細(xì)節(jié)需要被注意。例如,被裝飾后的函數(shù)其實(shí)已經(jīng)是另外一個(gè)函數(shù)了(函數(shù)名等函數(shù)屬性會(huì)發(fā)生改變)

Python的functools包中提供了一個(gè)叫wraps的decorator來(lái)消除這樣的副作用。寫(xiě)一個(gè)decorator的時(shí)候,最好在實(shí)現(xiàn)之前加上functools的wrap,它能保留原有函數(shù)的名稱(chēng)和docstring。

以上所述就是本文的 全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • Python面向?qū)ο笤砼c基礎(chǔ)語(yǔ)法詳解

    Python面向?qū)ο笤砼c基礎(chǔ)語(yǔ)法詳解

    這篇文章主要介紹了Pyhton面向?qū)ο笤砼c基礎(chǔ)語(yǔ)法,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本原理、概念、語(yǔ)法與相關(guān)使用技巧,需要的朋友可以參考下
    2020-01-01
  • Python中使用Frozenset對(duì)象的案例詳解

    Python中使用Frozenset對(duì)象的案例詳解

    Frozensets提供了一種創(chuàng)建不可變的集合的方法,它們只接受唯一的元素,并且是可散列類(lèi)型的對(duì)象,所以它們可以在其他只接受可散列對(duì)象作為子對(duì)象的?Python?對(duì)象中使用,這篇文章主要介紹了如何在Python中使用Frozenset對(duì)象,需要的朋友可以參考下
    2022-08-08
  • python使用response.read()接收json數(shù)據(jù)的實(shí)例

    python使用response.read()接收json數(shù)據(jù)的實(shí)例

    今天小編就為大家分享一篇python使用response.read()接收json數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Kotlin 中的 apply 函數(shù)用法詳解

    Kotlin 中的 apply 函數(shù)用法詳解

    apply 函數(shù)是 Kotlin 中一個(gè)十分方便的工具,它使得對(duì)對(duì)象進(jìn)行初始化和配置變得更加簡(jiǎn)潔、清晰,通過(guò)與 Java 的對(duì)比,我們可以看出 Kotlin 在處理類(lèi)似情況時(shí)具有更高的表現(xiàn)力和簡(jiǎn)潔性,本文給大家介紹Kotlin apply 函數(shù)的用法,感興趣的朋友一起看看吧
    2024-03-03
  • 基于DATAFRAME中元素的讀取與修改方法

    基于DATAFRAME中元素的讀取與修改方法

    今天小編就為大家分享一篇基于DATAFRAME中元素的讀取與修改方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python實(shí)現(xiàn)將一段文字復(fù)制到所選的文件當(dāng)中

    Python實(shí)現(xiàn)將一段文字復(fù)制到所選的文件當(dāng)中

    這篇文章主要為大家詳細(xì)介紹了Python如何將一段文字復(fù)制到所選的文件當(dāng)中,文中的示例代碼講解詳細(xì), 感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • 簡(jiǎn)述 Python 的類(lèi)和對(duì)象

    簡(jiǎn)述 Python 的類(lèi)和對(duì)象

    這篇文章主要介紹了Python 的類(lèi)和對(duì)象的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python函數(shù)基本使用原理詳解

    Python函數(shù)基本使用原理詳解

    這篇文章主要介紹了Python函數(shù)基本使用原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python數(shù)據(jù)可視化實(shí)現(xiàn)正態(tài)分布(高斯分布)

    Python數(shù)據(jù)可視化實(shí)現(xiàn)正態(tài)分布(高斯分布)

    這篇文章主要介紹了Python數(shù)據(jù)可視化實(shí)現(xiàn)正態(tài)分布(高斯分布),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python迭代器的實(shí)現(xiàn)原理

    Python迭代器的實(shí)現(xiàn)原理

    這篇文章主要介紹了Python迭代器的實(shí)現(xiàn)原理,文章基于python的相關(guān)資料展開(kāi)對(duì)Python迭代器的詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-05-05

最新評(píng)論

临城县| 东乡| 集贤县| 兰西县| 遵义县| 且末县| 兴化市| 龙口市| 阿坝| 巴彦淖尔市| 垣曲县| 无为县| 自治县| 于田县| 都兰县| 乐亭县| 义乌市| 迁西县| 汝阳县| 黄梅县| 安义县| 枞阳县| 盐山县| 长顺县| 冀州市| 拜城县| 南城县| 马公市| 罗甸县| 九台市| 靖州| 长岭县| 中方县| 松原市| 滕州市| 工布江达县| 六安市| 瑞丽市| 嘉善县| 和顺县| 资兴市|