TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #333 · 3 мар.

Как получить путь к файлу текущего класса если метод получения пути находится в родительском классе в другом файле? Например, представим такую ситуацию: # module1.py ### class BaseCls: @classmethod def get_path(cls): print(__file__) # module2.py ### from module1 import BaseCls class MainCls(BaseCls): pass Что покажет код: import module2 module2.MainCls.get_path() Мы ожидаем что путь будет к файлу module2.py, но переменная __file__ объявлена внутри файла module1.py и поэтому будет указывать именно на него. Чтобы получить правильный путь нам следует: ▫️ получить имя модуля текущего класса module_name = module2.MainCls.__module__ ▫️ найти этот модуль в списке импортированных модулей mod = sys.modules[module_name] ▫️ получить значение переменной __file__ filepath = mod. __file__ Вся эта процедура, причём для любого типа объекта, есть в функции inspect.getfile(). Так что наш метод должен выглядеть так: # module1.py import inspect class BaseCls: @classmethod def get_path(cls): print(inspect.getfile(cls)) Теперь из вызов этого метода из класса MainCls найдёт путь к файлу module2.py #tricks

Hashtags

Резултати

Пронајдени 1 слични објави

Глобално пребарување

sudo recast

@sudo_recast · Post #918 · 17.04.2025 г., 09:47

A useful command when you encounter conflicts while cherry-picking: tig HEAD $(git rev-parse CHERRY_PICK_HEAD 2>/dev/null) -- $(git diff --name-only --diff-filter=U | head -1) #tricks@sudo_recast

Hashtags