使用python装饰器验证配置文件示例

yipeiwu_com7年前Python基础

根据不同配置文件调用不同的验证函数检查输入。可以根据需求更改验证函数的逻辑。

复制代码 代码如下:

def VerifyData(func):

    def VerifyInt(data):
        assert(int(data) > 0)

    def VerifyString(data):
        assert(len(data) > 10)

    def inner(*args, **kvargs):

        print args
        print kvargs

        assert(len(args) > 1)
        if args[1] == "int.txt":
            VerifyInt(args[0])
        elif args[1] == "string.txt":
            VerifyString(args[0])

        func(*args, **kvargs)

    return inner

@VerifyData
def WriteData(text, filepath):
    print "WriteData"
    print text
    print filepath

WriteData("1234567890", "int.txt")

相关文章

浅谈Python生成器generator之next和send的运行流程(详解)

对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数。 然后第二个next调用,进入生成...

python list数据等间隔抽取并新建list存储的例子

原始数据如下: ['e3cd', 'e547', 'e63d', '0ffd', 'e39b', 'e539', 'e5be', '0dd2', 'e3d6', 'e52e', 'e...

30秒学会30个超实用Python代码片段【收藏版】

许多人在数据科学、机器学习、web开发、脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言。 Python流行的部分原因在于简单易学。 本文将简要介绍30个简短的、...

linux环境下的python安装过程图解(含setuptools)

linux环境下的python安装过程图解(含setuptools)

这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装。 一、下载python源码包 打开u...

跟老齐学Python之赋值,简单也不简单

变量命名 在《初识永远强大的函数》一文中,有一节专门讨论“取名字的学问”,就是有关变量名称的问题,本温故而知新的原则,这里要复习: 名称格式:(下划线或者字母)+(任意数目的字母,数字或...