码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-03-16 19:35:30      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:属性方法   动态绑定   

# 定义一个类
class Student(object):
    pass

# 实例化一个对象    
s = Student()
# 给这个对象绑定一个属性name
s.name = ‘John‘

print(s.name)
John

# 定义一个方法
def set_age(self, age):
    self.age = age

# 导入模块    
from types import MethodType

#给s这个对象绑定一个set_age的方法
s.set_age = MethodType(set_age, s)

s.set_age = 30
s.age
25


# 给实例对象绑定的方法只对该实例有效。


# 给所有的实例绑定方法的做法是给类绑定方法
def set_score(self, score):
    self.score = score
    
Student.set_score = MethodType(set_score, Student)

# 给类绑定方法后,所有实例均可调用


python中的__slots__变量

__slots__变量的作用就是限制该类实例能添加的属性:

class Student(object):
    __slots__ = (‘name‘, ‘age‘)

在创建Student实例的时候只能动态绑定name和age这两个属性。

__slots__定义的属性仅对当前类实例起作用,对继承的子类不起作用。











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

标签:属性方法   动态绑定   

原文地址:http://ting2junshui.blog.51cto.com/975290/1751674

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!