Код: Выделить всё
from myproject.exporting import Exporter
# This is the irritating part:
exporter = Exporter(path=__file__)
export = exporter.decorator()
@export
def public_function(…):
""" This function has been exported, and is public. """
...
def private_function(…):
""" This function is private. """
...
# This bit does not really bother me:
__all__, __dir__ = exporter.all_and_dir()
Есть ли способ получить значение __file__ другим способом? Я ищу способ выявить эти данные с помощью другого (надеюсь, менее хрупкого) пути.
Моя непосредственная мысль — создать функцию __getattr__(…) на уровне модуля. , поскольку я добился хороших результатов, используя их для предоставления экземпляров объектов при импорте – но независимо от того, является ли модуль __getattr__(…) лучшим инструментом или нет, я не уверен насчет какие средства интроспекции Python будут гарантированно использоваться.
Кроме того, в этом ответе содержится основная информация о значении __file__ для тех, кому интересно.
Подробнее здесь: https://stackoverflow.com/questions/786 ... le-perhaps