Python的实例定属性和方法或类绑定方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的实例定属性和方法或类绑定方法相关的知识,希望对你有一定的参考价值。

一、给实例对象绑定属性和方法:
1、给实例绑定属性:先定义一个Student类


#!/usr/bin/python
class Student(object):
    pass

然后绑定属性:


s = Student()
s.name = ‘AAA‘ # 动态给实例绑定一个属性
print(s.name)#输出AAA

2、给实例绑定方法:先定义一个方法


def add(self,a,b):
    self.a = a
    self.b = b
    return self.a +self.b

然后绑定方法:

MethodType把方法绑定在类实例上时,每个实例有自己单独的指向区域,互不干扰。MethodType(方法名,实例对象)


from types import MethodType
s.add = MethodType(add,s)
print(s.add(10,20))#输出30
print(s.a)#输出10
print(s.b)#输出20

二、给类绑定方法:
用MethodType将方法绑定到类,并不是将这个方法直接写到类内部,而是在内存中创建一个link指向外部的方法,在创建实例的时候这个link也会被复制。
MethodType(方法名,类名)


Student.add = MethodType(add,Student)
s2 = Student()
print(s2.add(10,60))#输出70

#也可以把函数直接赋给类.xxx


Student.add = add
s3 = Student()
print(s3.add(10,60))#输出70

以上是关于Python的实例定属性和方法或类绑定方法的主要内容,如果未能解决你的问题,请参考以下文章

python中属性和方法的动态绑定

Python类和实例方法和属性的动态绑定

python基础

python中方法和属性之间的区别

Python3学习之路~7.1 静态方法类方法属性方法

Python 面向对象