Как определить функцию, where
, которая может определить, где она была выполнена, без каких-либо аргументов? все файлы в ~/приложение/Определите, где была выполнена эта функция?
a.py:
def where():
return 'the file name where the function was executed'
b.py:
from a import where
if __name__ == '__main__':
print where() # I want where() to return '~/app/b.py' like __file__ in b.py
c.py:
from a import where
if __name__ == '__main__':
print where() # I want where() to return '~/app/c.py' like __file__ in c.py
Как вы заметили, у вас уже есть информация, которую вы хотите как '__file__'. Зачем вам нужно написать функцию, чтобы вернуть ее? – kindall
Посмотрите здесь: http://docs.python.org/2/library/inspect.html – StoryTeller
@kindall Я хочу, где() знать, где он выполняется, и использовать его как varible в своем теле функции. – walknotes