有没有办法在Python 2.5中模拟Python 3-metaclass的__prepare__特殊方法?

Mar*_*arc 5 python metaclass python-3.x

在我的项目中,我必须坚持使用Python 2.5(Google App Engine).在应用程序的某个地方(实际上是一个框架),我必须跟踪定义了哪些变量以及定义它们的顺序,换句话说,无论何时处理赋值运算符,我都要拦截.

使用Python 3,我将使用一种__prepare__方法定义元类M,该方法返回一个智能字典,用于跟踪何时访问它.然后我只需要使用元类M执行类语句中的所有内容.

有没有办法在Python 2.5中模拟这个?

我希望实现的目标的例子

使用Python 3的元类方法,我可以实现像引用一样工作的变量,例如M可以这样

# y is a callable
class C(metaclass=M):
    x = ref(y)
    x = 1
Run Code Online (Sandbox Code Playgroud)

将等效(直到创建C)y(1),即通过黑盒ref函数对C字典中的变量的第一次赋值创建此变量.进一步的赋值只需调用ref函数的参数.

Tim*_*ara -1

一个起点是查看PEP-3115并阅读“当前”行为,例如在实现 Python 3 之前的当前行为。