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

python利用裝飾器進行運算的實例分析

 更新時間:2015年08月04日 09:20:09   投稿:hebedich  
本文主要是通過使用Python的裝飾器來做一個運算的實例,來給大家詳細介紹下Python的裝飾器,非常的實用,有需要的小伙伴可以參考下。

今天想用python的裝飾器做一個運算,代碼如下

>>> 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'

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

怎么辦呢?

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)在實現(xiàn)的時候,有一些細節(jié)需要被注意。例如,被裝飾后的函數(shù)其實已經(jīng)是另外一個函數(shù)了(函數(shù)名等函數(shù)屬性會發(fā)生改變)

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

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

相關文章

  • Python面向對象原理與基礎語法詳解

    Python面向對象原理與基礎語法詳解

    這篇文章主要介紹了Pyhton面向對象原理與基礎語法,結合實例形式分析了Python面向對象程序設計中的基本原理、概念、語法與相關使用技巧,需要的朋友可以參考下
    2020-01-01
  • Python中使用Frozenset對象的案例詳解

    Python中使用Frozenset對象的案例詳解

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

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

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

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

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

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

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

    Python實現(xiàn)將一段文字復制到所選的文件當中

    這篇文章主要為大家詳細介紹了Python如何將一段文字復制到所選的文件當中,文中的示例代碼講解詳細, 感興趣的小伙伴可以跟隨小編一起學習一下
    2025-02-02
  • 簡述 Python 的類和對象

    簡述 Python 的類和對象

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

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

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

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

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

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

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

最新評論

孝昌县| 灵武市| 临夏县| 潼南县| 崇仁县| 徐州市| 同江市| 谷城县| 苍溪县| 白河县| 临湘市| 股票| 大姚县| 金阳县| 大姚县| 安溪县| 石泉县| 武邑县| 都兰县| 隆尧县| 新绛县| 定南县| 甘孜县| 江川县| 扎兰屯市| 新竹县| 新建县| 无为县| 灌南县| 滕州市| 上饶市| 吉安市| 清远市| 金门县| 右玉县| 巩留县| 福海县| 孟津县| 隆林| 额敏县| 靖安县|