为什么Python有一个神奇的“__class__”单元?

时间:2013-09-11 20:23:31

标签: python super

在Python中,有三种方法可以让值进入范围:它们作为参数传入,可以从封闭范围访问,最后封闭类和封闭函数的第一个参数可用于{{1 }}。为什么不将此机制暴露给开发人员,以便可以针对其他情况进行扩展?

在任何地方都可以使用super() __context__会不会更清晰?默认情况下,输入类的定义会在ChainMap中公开类本身,并且输入非静态的非类成员函数会将第一个参数公开为__context__['__class__']。但是,一般来说,我们可以使用像

这样的结构做更多的事情
__context__['self']

将dict推送到ChainMap并在退出范围时弹出它。

然后可以使用它来实现许多其他设置案例,例如numpy entercontext {'blah': 123}: f(__context__['blah']) / set_printoptions等。而不是获取,设置和恢复,您只需将它们推送到上下文中。

0 个答案:

没有答案