在Python中,有三种方法可以让值进入范围:它们作为参数传入,可以从封闭范围访问,最后封闭类和封闭函数的第一个参数可用于{{1 }}。为什么不将此机制暴露给开发人员,以便可以针对其他情况进行扩展?
在任何地方都可以使用super()
__context__
会不会更清晰?默认情况下,输入类的定义会在ChainMap
中公开类本身,并且输入非静态的非类成员函数会将第一个参数公开为__context__['__class__']
。但是,一般来说,我们可以使用像
__context__['self']
将dict推送到ChainMap并在退出范围时弹出它。
然后可以使用它来实现许多其他设置案例,例如numpy entercontext {'blah': 123}:
f(__context__['blah'])
/ set_printoptions
等。而不是获取,设置和恢复,您只需将它们推送到上下文中。