[Python-de] magischen Konstanten in Python?

Mathias Uebel mathias.uebel at meeloon.de
Mi Jan 7 09:59:46 UTC 2009


Berthold Höllmann schrieb:
> Mathias Uebel <mathias.uebel at meeloon.de>
> writes:
> 
>> Hallo Freunde,
>>
>> in PHP gibt es die sogenannten "magischen Konstanten", wie __FILE__,
>> __LINE__ etc. Ich habe das immer gern zum Debuggen genutzt. Gibt es so
>> etwa auch in Python?
>>
>> Mathias
> 
> Normalerweise benutze ich 
> 
>    import inspect
> 
>    def curPos(frame=1):
>        """Print functionname, filename and line at called position.
>        """
>        co = sys._getframe(frame).f_code
>        stack = inspect.stack()[frame]
>        return "%s (%s @ %d)" % (co.co_name, stack[1], stack[2])
> 
> und
> 
>    print curPos()
> 
> als Ersatz for __FILE__ and __LINE__ debug print statements.
> 
> Berthold

Hallo Berthold,

ich habe mir das noch einmal angesehen:

Hat einen Grund, warum sys.getframe(frame) bemüht wird? Denn 
inspect.stack()[frame] hat diese Information doch auch.

return "%s (%s @ %d)" % (stack[3], stack[1], stack[2])


Mathias



Mehr Informationen über die Mailingliste python-de