【Python基础知识库】Python中元编程

本文介绍了Python中的元编程概念,包括元类、预定义方法、函数赋值、描述器以及元类的应用。元编程允许程序员以更高层次抽象操作代码,如扩展重构语法、开发DSL、生成代码和面向切面编程。文章通过实例讲解了如何使用这些技术,例如使用元类创建ORM层。
摘要由CSDN通过智能技术生成

Python黑魔法:元类和元编程
Python 元编程

元编程(Meta Programming)又叫超编程,是指某类计算机程序的编写,这类计算机程序的编写或者超重其他程序(或者自身)作为他们的数据,或者在运行完成部分本应该在编译时完成的工作。多数情况下,与手工编译全部代码相比,程序员可以获得更高的工作效率,或者给与程序员更大的灵活度去处理新的情形而无需重新编译。

编写元程序的语言称之为元语言。被操作的程序的语言称之为“目标语言”。一门编程语言可以同时也是自身的元语言的能力称之为“反射”或者“自反”。作为胶水语言的python,对各种语言的库的支持(ctypes、js2py等),就是元编程应用的很好实例。

元编程是一种可以将程序当作数据来操作的技术,元编程能够读取,生成,分析或转换其他的程序代码,甚至可以在运行时修改自身。元编程存在的目的,就是多提供了一个抽象层次。

在python中,元编程实现通常的手段有:

  • 预定义方法
class A(object):
    def __init__(self, o):
        self.__obj__ = o

    def __getattr__(self, name):
        if hasattr(self.__obj__, name):
            return getattr(self.__obj__, name)
        return self.__dict__[name]

    def __iter__(self):
        return self.__obj__.iter__()

l = []
a = A(l)

for i in range(101
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值