access the name of my method inside it

Jay Loden python at jayloden.com
Wed Aug 1 09:18:31 EDT 2007


james_027 wrote:
> Hi,
> 
> On Aug 1, 5:18 pm, Marc 'BlackJack' Rintsch <bj_... at gmx.net> wrote:
>> On Wed, 01 Aug 2007 09:06:42 +0000, james_027 wrote:
>>> for example I have this method
>>> def my_method():
>>>     # do something
>>>     # how do I get the name of this method which is my_method here?
>> Why do you need this?  There are ways but those are not really good for
>> production code.
>>
> 
> I am going to use this in Django. I am trying to implement a
> permission here, where in the database store the methods that the user
> are allowed to execute. for example if the method is def
> create_event(): the method will look for create_event in the database
> to see if it allow to be execute.

This might help, I used it for a similar need I had in the past where I needed a method to know the name it was called with

class TestClass:
        def __init__(self):
                pass

        def __getattr__(self, name):
                try:
                        return getattr(self.__class__, name)
                except AttributeError:
                        return functools.partial(self.foo, name)

        def foo(self, name, **args): 
                print name
                for i in args:
                        print " %s=%s" % (i, args[i])



More information about the Python-list mailing list