Итак, я написал этот модуль:
plaform.py
from enum import IntFlag
class PlatformFlag(IntFlag):
LINUX = 1,
MACOSX = 2,
WINDOWS = 3
globals().update(PlatformFlag.__members__)
И я пытаюсь использовать его следующим образом:
import platform
if __name__ == '__main__':
if platform.WINDOWS:
print("This is Windows!")
Однако я получаю:
"Произошло исключение: у модуля AttributeError" платформа "нет атрибута" WINDOWS ""
Это работает:
import platform
if __name__ == '__main__':
if platform.PlatformFlag.WINDOWS:
print("This is Windows!")
Однако, НЕ желаемый способ сделать это .Я думаю о re.py в cPython.Они могут вызвать это, например, re.compile (pattern, flags = re.M) .Однако, по какой-то неизвестной мне причине, globals (). Upate () , похоже, не работает, или я что-то здесь упускаю.
Re.py:
https://github.com/python/cpython/blob/master/Lib/re.py
РЕДАКТИРОВАТЬ: Это заслуживает доверия, https://repl.it/@JoranBeasley/IntentionalPastStrategies