How to refer to class name and function name in a python program?

Benjamin Kaplan benjamin.kaplan at case.edu
Sun Sep 20 19:43:04 CEST 2009


On Sun, Sep 20, 2009 at 12:43 PM, Peng Yu <pengyu.ut at gmail.com> wrote:
> On Sun, Sep 20, 2009 at 11:32 AM, Vijayendra Bapte
> <vijayendra.bapte at gmail.com> wrote:
>> On Sep 20, 8:38 pm, Peng Yu <pengyu... at gmail.com> wrote:
>>> Hi,
>>>
>>> I have the following code. I want to change the function body of
>>> __repr__ to something like
>>>
>>>     return 'In %s::%s' % ($class_name, $function_name)
>>>
>>> I'm wondering what I should write for $class_name and $function_name in python.
>>>
>>> Regards,
>>> Peng
>>>
>>> class A:
>>>   def __init__(self):
>>>     pass
>>>
>>>   def __repr__(self):
>>>     return 'In A::__repr__'
>>>
>>> a = A()
>>> print a
>>
>> Using decorator:
>> ----------------
>>
>> def echo(func):
>>    def _echo(self, *args, **kw):
>>        return "In %s.%s" % (self.__class__.__name__, func.func_name)
>>
>>    return _echo
>>
>> class A:
>>
>>    @echo
>>    def __repr__(self):
>>        pass
>>
>> a = A()
>> print a
>
> What does @echo mean?
>
> Regards,
> Peng

It's a decorator, which wraps the function with another function it's
the equivalent of calling

def __repr__(self) :
    pass

__repr__ = echo(__repr__)

> --
> http://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list