Wie soll ich eine Funktion definieren, where
, die sagen kann, wo es ausgeführt wurde, ohne dass Argumente übergeben wurden? alle Dateien in ~/app/Ermitteln, wo eine Funktion ausgeführt wurde?
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
Wie Sie bemerken, haben Sie bereits die gewünschten Informationen als '__file__'. Warum müssen Sie eine Funktion schreiben, um es zurückzugeben? – kindall
Schau mal hier: http://docs.python.org/2/library/inspect.html – StoryTeller
@kindall Ich will wo() wissen, wo es ausgeführt wird, und verwenden Sie es als eine Variable in seinem Funktionskörper. – walknotes