how to tell a method is classmethod or static method or instance method

Cameron Simpson cs at
Tue Feb 14 04:52:23 EST 2012

On 14Feb2012 13:13, Zheng Li <dllizheng at> wrote:
| > On 13Feb2012 15:59, Zheng Li <dllizheng at> wrote:
| > | how to tell a method is class method or static method or instance method?
| > 
| > Maybe a better question is:
| >  under what circumstances do you need to figure this out? 
| I can get "method1" of class "Test" by
| a = getattr(Test, "method1")
| and I also want know how to invoke it
| a()	or	a(Test())



where T is an object of type/class Test. So your second approach is
notionally correct (aside from making a throwaway object that is then

| BTW:
| I don't see what the problem is if I ask a question just because I am curious about it.

There's nothing wrong with it at all.

But often, questions arise from some other circumstances and this one is
of such a flavour that if you wanted this code in a real application it
would _often_ be the wrong solution to seek, because normally you know
how to call something - it is not normally useful to introspect it to
decide what to do.

So I was wondering what the outer context might be, because there may
well have been a better solution to the situation that brought up the
specific question.

Simple curiosity is sufficient reason, of course.
Cameron Simpson <cs at> DoD#743

Too young to rest on the weekend, too old to rest during the week.
        - Mark Randol <ryvw50 at>

More information about the Python-list mailing list