[Python-Dev] [Python-checkins] r83890 - python/branches/py3k/Lib/inspect.py

Alexander Belopolsky alexander.belopolsky at gmail.com
Mon Aug 9 18:26:46 CEST 2010


On Mon, Aug 9, 2010 at 11:48 AM, Benjamin Peterson <benjamin at python.org> wrote:
> 2010/8/9 Nick Coghlan <ncoghlan at gmail.com>:
>> On Mon, Aug 9, 2010 at 11:05 PM, benjamin.peterson
>> <python-checkins at python.org> wrote:
>>> -if hasattr(sys, '_getframe'):
>>> -    currentframe = sys._getframe
>>> -else:
>>> -    currentframe = lambda _=None: None
>>> +def currentframe():
>>> +    """Return the frame or the caller or None if this is not possible."""
>>> +    return sys._getframe(1) if hasattr(sys, "_getframe") else None
>>
>> It isn't hugely important, but with sys._getframe() unlikely to appear
>> during runtime, the following may make more sense:
>>
>> if hasattr(sys, '_getframe'):
>>    def currentframe():
>>        return sys._getframe(1)
>> else:
>>    def currentframe():
>>        pass
>> currentframe.__doc__ = "Return the frame of the caller or None if this
>> is not possible."
>
> I considered that but found the docstring thing ugly.
>

I think I have a brighter color for this bikeshed:

 if hasattr(sys, '_getframe'):
   def currentframe():
        "Return the frame of the caller."
        ..
else:
   def currentframe():
        "Not supported on this platform.  Always returns None."
        ..

The working version's docstring may also explain that it may return
None on some platforms.


More information about the Python-Dev mailing list