2017-04-13 19 views
5

的基本上不是這樣的:是否有可能改變當地人字典?

context1.a 
context1.b() 
context2.a 
context2.b() 

我想寫:

with context1(): 
    a 
    b() 

with context2(): 
    a 
    b() 

理想我會切換出「當地人大辭典」與自定義__get__對象做到這一點,但我我不知道該怎麼做,或者甚至有可能。

爲什麼?:我已經實現了一種謂詞分派(爲了好玩),但是我只能通過明確命名上下文來使用:context.a() + context.b()很煩人,總是寫。

+5

我絕對認爲你試圖以最難的方式解決問題。爲什麼不能只是創建一個根據需要調用這些函數? –

+0

這應該是像Javascript的'與'?這在Javascript中甚至不是一個好主意;它被棄用,並嚴格禁止模式。 – user2357112

回答

0

不要這樣做。僅僅因爲圖靈機可以做點什麼並不意味着這是向人們傳達你的意圖的好方法。

只需堅持標準的語法,然後您的代碼將清楚其他工程師。

with context1() as c: 
     c.a 
     c.b() 
相關問題