欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2015年08月04日 09:20:09   投稿:hebedich  
本文主要是通過使用Python的裝飾器來做一個(gè)運(yùn)算的實(shí)例,來給大家詳細(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'

原來是不能這樣弄的  函數(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來消除這樣的副作用。寫一個(gè)decorator的時(shí)候,最好在實(shí)現(xiàn)之前加上functools的wrap,它能保留原有函數(shù)的名稱和docstring。

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

相關(guān)文章

  • Python中三種花式打印的示例詳解

    Python中三種花式打印的示例詳解

    在Python中有很多好玩的花式打印,我們今天就來挑戰(zhàn)下面三個(gè)常見的花式打印。文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2022-03-03
  • Python實(shí)現(xiàn)求解一元二次方程的方法示例

    Python實(shí)現(xiàn)求解一元二次方程的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)求解一元二次方程的方法,涉及Python基于math包進(jìn)行數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • 使用python驗(yàn)證代理ip是否可用的實(shí)現(xiàn)方法

    使用python驗(yàn)證代理ip是否可用的實(shí)現(xiàn)方法

    驗(yàn)證代理IP是否可用。原理是使用代理IP訪問指定網(wǎng)站,如果返回狀態(tài)為200,表示這個(gè)代理是可以使用的。這篇文章重點(diǎn)給大家介紹使用python驗(yàn)證代理ip是否可用的實(shí)現(xiàn)方法,感興趣的朋友一起看看吧
    2018-07-07
  • python創(chuàng)建與遍歷List二維列表的方法

    python創(chuàng)建與遍歷List二維列表的方法

    這篇文章主要介紹了python創(chuàng)建與遍歷List二維列表的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-08-08
  • python利用百度AI實(shí)現(xiàn)文字識(shí)別功能

    python利用百度AI實(shí)現(xiàn)文字識(shí)別功能

    這篇文章主要為大家詳細(xì)介紹了python利用百度AI實(shí)現(xiàn)文字識(shí)別,主要涉及通用文字識(shí)別、網(wǎng)絡(luò)圖片文字識(shí)別、身份證識(shí)別等文字識(shí)別功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 快速掌握python權(quán)限功能設(shè)計(jì)實(shí)戰(zhàn)指南

    快速掌握python權(quán)限功能設(shè)計(jì)實(shí)戰(zhàn)指南

    在處理權(quán)限控制時(shí),裝飾器能幫助我們以一種統(tǒng)一且簡(jiǎn)潔的方式管理不同用戶對(duì)系統(tǒng)資源的訪問權(quán)限,本文將通過幾個(gè)簡(jiǎn)單的示例逐步展示如何利用Python裝飾器實(shí)現(xiàn)從基礎(chǔ)到復(fù)雜的權(quán)限控制功能
    2024-01-01
  • python中的Pytorch建模流程匯總

    python中的Pytorch建模流程匯總

    這篇文章主要介紹了python中的Pytorch建模流程匯總,主要幫大家?guī)椭蠹沂崂砩窠?jīng)網(wǎng)絡(luò)訓(xùn)練的架構(gòu),具有一的的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-03-03
  • Django 解決model 反向引用中的related_name問題

    Django 解決model 反向引用中的related_name問題

    這篇文章主要介紹了Django 解決model 反向引用中的related_name問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python中csv模塊的基本使用教程

    Python中csv模塊的基本使用教程

    csv文件使用逗號(hào)分割,是一種純文本格式,不能指定字體顏色等樣式,也不能指定單元格的寬高,不能合并單元格,沒有多個(gè)工作表等功能,可以使用Excel打,這篇文章主要給大家介紹了關(guān)于Python中csv模塊的基本使用教程,需要的朋友可以參考下
    2021-07-07
  • Python3 filecmp模塊測(cè)試比較文件原理解析

    Python3 filecmp模塊測(cè)試比較文件原理解析

    這篇文章主要介紹了Python3 filecmp模塊測(cè)試比較文件原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論