python methodtype_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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值