Monday, October 4, 2004 [Tweets] [Favorites]

__FILE__ and __LINE__ in Python

Ned Batchelder shows how to use sys._getframe() to get the current (or calling) filename, line, and function in Python. In C, this happens at compile-time. Practically everything in Python happens at runtime, so this is slower, but you can also do things like inspect the local variables in the stack frames.


You could just use Ruby, which gives you __FILE__ and __LINE__ directly.

I forgot to mention that Python does have the module-level __file__ variable, but it's not as useful as __FILE__ in C, because it can't be hidden inside a macro call. What's the Ruby equivalent of sys._getframe()?

it's called 'caller'

Stay up-to-date by subscribing to the Comments RSS Feed for this post.

Leave a Comment