annotate Methods @ 244:eee52d5a4af8 default tip

created
author 127.0.0.1
date Sun, 30 Jun 2013 11:08:33 +0200
parents a7a67be0697c
children
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
58
a7a67be0697c created
127.0.0.1
parents: 57
diff changeset
5
57
e25314562515 created
127.0.0.1
parents:
diff changeset
6 def __call__(self, *args, **kwargs):
e25314562515 created
127.0.0.1
parents:
diff changeset
7 return self.__func__(*args, **kwargs)
58
a7a67be0697c created
127.0.0.1
parents: 57
diff changeset
8
57
e25314562515 created
127.0.0.1
parents:
diff changeset
9 def __get__(self, instance, owner):
e25314562515 created
127.0.0.1
parents:
diff changeset
10 return BoundMethod(instance, self.__func__)
e25314562515 created
127.0.0.1
parents:
diff changeset
11
e25314562515 created
127.0.0.1
parents:
diff changeset
12 class BoundMethod(object):
e25314562515 created
127.0.0.1
parents:
diff changeset
13 def __init__(self, instance, func):
e25314562515 created
127.0.0.1
parents:
diff changeset
14 self.__self__, self.__func__ = instance, func
58
a7a67be0697c created
127.0.0.1
parents: 57
diff changeset
15
57
e25314562515 created
127.0.0.1
parents:
diff changeset
16 def __call__(self, *args, **kwargs):
e25314562515 created
127.0.0.1
parents:
diff changeset
17 return self.__func__(self.__self__, *args, **kwargs)
e25314562515 created
127.0.0.1
parents:
diff changeset
18 }}}