国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python通過裝飾器檢查函數參數數據類型的方法

2020-02-23 00:20:15
字體:
來源:轉載
供稿:網友

本文實例講述了python通過裝飾器檢查函數參數數據類型的方法。分享給大家供大家參考。具體分析如下:

這段代碼定義了一個python裝飾器,通過此裝飾器可以用來檢查指定函數的參數是否是指定的類型,在定義函數時加入此裝飾器可以非常清晰的檢測函數參數的類型,非常方便
代碼如下:def accepts(exception,**types):
    def check_accepts(f):
        assert len(types) == f.func_code.co_argcount, /
        'accept number of arguments not equal with function number of arguments in "%s"' % f.func_name
        def new_f(*args, **kwds):
            for i,v in enumerate(args):
                if types.has_key(f.func_code.co_varnames[i]) and /
                    not isinstance(v, types[f.func_code.co_varnames[i]]):
                    raise exception("arg '%s'=%r does not match %s" % /
                        (f.func_code.co_varnames[i],v,types[f.func_code.co_varnames[i]]))
                    del types[f.func_code.co_varnames[i]]
            for k,v in kwds.iteritems():
                if types.has_key(k) and not isinstance(v, types[k]):
                    raise exception("arg '%s'=%r does not match %s" % /
                        (k,v,types[k]))
            return f(*args, **kwds)
        new_f.func_name = f.func_name
        return new_f
    return check_accepts
def exmaple():
    @accepts(Exception,a=int,b=list,c=(str,unicode))
    def test(a,b=None,c=None)
        print 'ok'
    test(13,c=[],b='df')

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南城县| 安阳县| 布拖县| 澄城县| 吐鲁番市| 大渡口区| 临清市| 广德县| 昂仁县| 湟中县| 沙雅县| 洛南县| 平远县| 崇州市| 钟山县| 武穴市| 城口县| 霍林郭勒市| 潢川县| 疏附县| 西乌珠穆沁旗| 连云港市| 桂林市| 溆浦县| 乌鲁木齐市| 乌恰县| 阿拉尔市| 长沙县| 丽水市| 阿克陶县| 白城市| 宜州市| 桐庐县| 都兰县| 绩溪县| 郸城县| 日照市| 宁陵县| 阜宁县| 休宁县| 迁安市|