>>> class A(object): ... def some(self): ... pass ... >>> a=A() >>> a.some <bound method A.some of <__main__.A object at 0x7f0d6fb9c090>>
IOW, I need to get access to "a" after being handed over only "a.some".
A bound method is the one which is dependent on the instance of the class as the first argument. It passes the instance as the first argument which is used to access the variables and functions. In Python 3 and newer versions of python, all functions in the class are by default bound methods.
If a function is an attribute of class and it is accessed via the instances, they are called bound methods. A bound method is one that has ' self ' as its first argument. Since these are dependent on the instance of classes, these are also known as instance methods.
An instance attribute refers to the properties of that particular object like edge of the triangle being 3, while the edge of the square can be 4. self – It is a keyword which points to the current passed instance. But it need not be passed every time while calling an instance method.
So, bound mean that underlying function is bound to some instance. unbound mean that it is still bound, but only to a class. Show activity on this post. A function object is a callable object created by a function definition.
Starting python 2.6 you can use special attribute __self__
:
>>> a.some.__self__ is a True
im_self
is phased out in py3k.
For details, see the inspect
module in the Python Standard Library.
>>> class A(object): ... def some(self): ... pass ... >>> a = A() >>> a <__main__.A object at 0x7fa9b965f410> >>> a.some <bound method A.some of <__main__.A object at 0x7fa9b965f410>> >>> dir(a.some) ['__call__', '__class__', '__cmp__', '__delattr__', '__doc__', '__format__', '__func__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'im_class', 'im_func', 'im_self'] >>> a.some.im_self <__main__.A object at 0x7fa9b965f410>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With