【python注解】自定义注解与动态获取方法注解信息-基础

本文详细探讨了Python注解的实现原理,通过装饰器模式展示了如何将注解信息注入到方法中。实例展示了如何利用注解进行代码分析,如获取作者信息,并根据作者进行代码评估。此外,还强调了在实际框架开发中动态获取注解信息的重要性。
摘要由CSDN通过智能技术生成

python的注解是通过装饰器模式实现的,@注解本质是一个函数

def my_annotation(**kwds):
    def decorate(fn):
        for item in kwds.items():
            print(item)
        return fn
    return decorate

@my_annotation(value="this is a annotation", author="Jack")
def test_annotation():
    print("test...")


if __name__ == "__main__":
    annos = test_annotation.__annotations__
    print(annos)

打印结果:

('value', 'this is a annotation')
('author', 'Jack')
{}

上述结果可以理解为将注解信息 { value="this is a annotation", author="Jack" } 作为参数传到my_annotation函数中,将test_annotation函数作为参数传到装饰器函数decorate中

注意decorate这里返回的是fn函数本身,因为你返回什么,加了注解的test_annotation就会变成什么,返回str,则test_annotation将不再是函数,而是str,因此test_annotation.__annotations__会报错不存在该属性&#

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值