Jak zdefiniować funkcję, where
, która może określić, gdzie została wykonana, bez żadnych argumentów? wszystkie pliki w katalogu ~/app/Określić, gdzie została wykonana funkcja?
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
Jak już zauważyłeś, masz już informacje, które chcesz, jako "__file__". Dlaczego musisz napisać funkcję, aby ją zwrócić? – kindall
Zajrzyj tutaj: http://docs.python.org/2/library/inspect.html – StoryTeller
@kindall Chcę, aby where() wiedział, gdzie jest wykonywane, i używać go jako zmienną w jego ciele funkcji. – walknotes