Хотелось бы знать, есть ли у кого-нибудь мысли по поводу использования глобального Python вместо ссылки на сам модуль. Хотя в прошлом я использовал global когда это было необходимо, я обнаружил, что делать второй метод несколько яснее (и в последнее время склонялся к этому синтаксису):
import sys
mod = sys.modules[__name__]
counter = 0
def incrementGlobal():
global counter
counter += 1
def incrementMod():
mod.counter += 1
Очевидно, что оба они работают нормально, но если у кого-то есть какие-либо сильные мнения (что более питонично, в исполнении и т. Д.), Я бы хотел их услышать.
Между прочим, я использую любой из них в ситуациях, когда модуль естественным образом инкапсулирует все методы и атрибуты того, что было бы одним классом, и вместо ссылки на incrementmodule.IncrementClass.counter я могу просто использовать incrementmodule.counter.