Hi Guido,
I've bumped into this a couple of times.
First time was when I wanted to know whether what I had was a
classmethod, staticmethod or normal method here:
https://github.com/Simplistix/testfixtures/blob/master/testfixtures/replace.py#L59
This resulted in having to trawl through __dict__ here:
https://github.com/Simplistix/testfixtures/blob/master/testfixtures/resolve.py#L17
...rather than just using getattr.
I bumped into it again, yesterday, trying to add support for classes to
this lightweight dependency injection framework I'm developing:
https://github.com/Simplistix/mush/blob/master/tests/test_runner.py#L189
Here's my local copy of that test:
https://gist.github.com/cjw296/db64279c69cdc0c5e112
The workaround I was playing with this morning is a wrapper so that I
know I have a class method, although what I really want to write at this
line is:
https://gist.github.com/cjw296/db64279c69cdc0c5e112#file-gistfile1-txt-L40
runner = Runner(T0, C1.meth, C2.meth1, C2.meth2)
...but if I do that, how can the runner know that what it gets for its
second argument is a class method of C1?
(which is this case means that it should do C1().meth() rather than
C1.meth())
cheers,
Chris
On 04/07/2013 17:25, Guido van Rossum wrote:
Chris, what do you want to do with the knowledge you are seeking?
--Guido van Rossum (sent from Android phone)
On Jul 4, 2013 4:28 AM, "Chris Withers" <ch...@simplistix.co.uk
<mailto:ch...@simplistix.co.uk>> wrote:
Hi All,
In Python 2, I can figure out whether I have a method or a function,
and, more importantly, for an unbound method, I can figure out what
class the method belongs to:
>>> class MyClass(object):
... def method(self): pass
...
>>> MyClass.method
<unbound method MyClass.method>
>>> MyClass.method.im_class
<class '__main__.MyClass'>
There doesn't appear to be any way in Python 3 to do this, which is
a little surprising and frustrating...
What am I missing here?
Chris
--
Simplistix - Content Management, Batch Processing & Python Consulting
- http://www.simplistix.co.uk
_________________________________________________
Python-Dev mailing list
Python-Dev@python.org <mailto:Python-Dev@python.org>
http://mail.python.org/__mailman/listinfo/python-dev
<http://mail.python.org/mailman/listinfo/python-dev>
Unsubscribe:
http://mail.python.org/__mailman/options/python-dev/__guido%40python.org
<http://mail.python.org/mailman/options/python-dev/guido%40python.org>
______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________
--
Simplistix - Content Management, Batch Processing & Python Consulting
- http://www.simplistix.co.uk
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com