Интересно, есть ли у кого-нибудь мысли об использовании Python global по сравнению со ссылкой на сам модуль. Раньше я использовал 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.