基本上不是这样的:
context1.a
context1.b()
context2.a
context2.b()
我想写:
with context1():
a
b()
with context2():
a
b()
理想情况下,我会通过使用自定义__get__
的对象切换“本地词典”来做到这一点,但我不知道如何做到这一点,或者甚至可能。
为什么?:我实现了一种谓词调度(为了好玩),但我只能通过每次显式命名上下文来使用:context.a() + context.b()
一直都很难写。
不要那样做。仅仅因为图灵机可以做某事并不意味着这是向人们传达你的意图的好方法。
只需坚持标准语法,然后您的代码将对其他工程师清楚。
with context1() as c:
c.a
c.b()