2012-12-04 26 views
11

ví dụ: a.boo phương thức gọi b.foo. Trong b.foo phương pháp, làm thế nào tôi có thể nhận được một tên tập tin của (Tôi không muốn vượt qua __file__-b.foo phương pháp) ...cách lấy tên tệp của người gọi, tên phương thức trong python

+0

cảm ơn câu trả lời của bạn và tôi thấy đây là điều tốt nhất cho tôi bây giờ: http://stackoverflow.com/questions/3711184/how-to-use-inspect-to-get-the-callers-info-from -callee –

Trả lời

18

Bạn có thể sử dụng các mô-đun inspect để đạt được điều này:

frame = inspect.stack()[1] 
module = inspect.getmodule(frame[0]) 
filename = module.__file__ 
1

bạn có thể sử dụng mô-đun traceback:

import traceback 

và bạn có thể in dấu vết trở lại như thế này:

print traceback.format_exc() 

Tôi đã không sử dụng điều này trong nhiều năm, nhưng điều này là đủ để giúp bạn bắt đầu.

Các vấn đề liên quan