Использование Python global по сравнению с указанием модуля

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

5
задан gnr 31 December 2011 в 19:21
поделиться