К сожалению, тут без внешних библиотек не обойтись. Но выглядит интересно!
# my_module.pyПо аналогии со свойствами класса и инстанса в функцию первым аргументом прилетает объект текущего модуля.
from mprop import mproperty
@mproperty
def x(mod):
print(f"Prop from '{mod.__name__}'")
return 2+2
Теперь обращаемся к функции как к объекту модуля:
>>> import my_module#tricks #libs
>>> my_module.x
Prop from 'my_module'
4