annotate Methods @ 57:e25314562515

created
author 127.0.0.1
date Sat, 29 Jun 2013 12:53:39 +0200
parents
children a7a67be0697c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
57
e25314562515 created
127.0.0.1
parents:
diff changeset
1 {{{#!python
e25314562515 created
127.0.0.1
parents:
diff changeset
2 class UnboundMethod(object):
e25314562515 created
127.0.0.1
parents:
diff changeset
3 def __init__(self, func):
e25314562515 created
127.0.0.1
parents:
diff changeset
4 self.__func__ = func
e25314562515 created
127.0.0.1
parents:
diff changeset
5 def __call__(self, *args, **kwargs):
e25314562515 created
127.0.0.1
parents:
diff changeset
6 return self.__func__(*args, **kwargs)
e25314562515 created
127.0.0.1
parents:
diff changeset
7 def __get__(self, instance, owner):
e25314562515 created
127.0.0.1
parents:
diff changeset
8 return BoundMethod(instance, self.__func__)
e25314562515 created
127.0.0.1
parents:
diff changeset
9
e25314562515 created
127.0.0.1
parents:
diff changeset
10 class BoundMethod(object):
e25314562515 created
127.0.0.1
parents:
diff changeset
11 def __init__(self, instance, func):
e25314562515 created
127.0.0.1
parents:
diff changeset
12 self.__self__, self.__func__ = instance, func
e25314562515 created
127.0.0.1
parents:
diff changeset
13 def __call__(self, *args, **kwargs):
e25314562515 created
127.0.0.1
parents:
diff changeset
14 return self.__func__(self.__self__, *args, **kwargs)
e25314562515 created
127.0.0.1
parents:
diff changeset
15 }}}