美文网首页ITS·黑客
【python】给类或实例绑定方法或实例

【python】给类或实例绑定方法或实例

作者: 某米狼 | 来源:发表于2017-05-11 13:57 被阅读8次

给类或者实例绑定方法或实例:

>>> class Student(object):
        pass
  1. 先定义,然后 类名.新方法=前面定义过的方法
#给类绑定方法
>>> def set_score(self, score):
...     self.score = score
...
>>> Student.set_score = set_score
#给实例绑定属性
>>> s = Student()
>>> s.name = 'Michael' # 动态给实例绑定一个属性
>>> print(s.name)
Michael
  1. MethodType()
    s.methodname = MethodType(前面定义过的方法名, s)
>>> def set_age(self, age): # 定义一个函数作为实例方法
...     self.age = age
...
>>> from types import MethodType
>>> s.set_age = MethodType(set_age, s) # 给实例s绑定一个方法,绑定名称为set_age
>>> s.set_age(25) # 调用实例方法
>>> s.age # 测试结果
25
  1. setattr(object,name,value)
    属性name必须先存在
    只能用在实例...吧

限制实例的属性,比如只允许对Student实例添加name和age属性。
__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的

class Student(object):
    __slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称

在绑定属性时,检查参数
Python内置的@property装饰器就是负责把一个方法变成属性调用的

相关文章

  • #8 面向对象高级编程,python内部属性方法

    一.实例绑定方法和给类绑定方法 由于python动态语言的特性,在创建类之后,可以给实例或类再绑定方法。给实例绑定...

  • 【python】给类或实例绑定方法或实例

    给类或者实例绑定方法或实例: 先定义,然后 类名.新方法=前面定义过的方法 MethodType()s.metho...

  • python-实例属性与类属性

    由于Python是动态语言,根据类创建的实例可以任意绑定属性。 给实例绑定属性的方法是通过实例变量,或者通过sel...

  • 27. OOP-实例属性和类属性

    由于Python是动态语言,根据类创建的实例可以任意绑定属性。给实例绑定属性的方法是通过实例变量,或者通过self...

  • 实例属性和类属性

    实例属性和类属性: 由于Python是动态语言,根据类创建的实例可以任意绑定属性。 (1)给实例绑定属性的方法是通...

  • 第31节:实例属性和类属性

    由于Python是动态语言,根据类创建的实例可以任意绑定属性。 给实例绑定属性的方法是通过实例变量,或者通过sel...

  • 使用__slots__实现动态绑定

    Python作为动态语言,可以实现动态绑定属性和实例方法等。 动态绑定属性 动态绑定实例方法 给一个实例绑定的方法...

  • Python 实例方法、类方法和静态方法(转)

    原文链接概括来说,是否与类或者实例进行绑定,这就是实例方法、类方法、静态方法的区别。 在 Python 中,实例方...

  • Python动态绑定属性方法

    python是动态语言,可以为实例动态绑定属性、方法,也可以为类动态绑定方法。即在用到的时候定义。为实例动态绑定的...

  • 遇见Python(二):面向对象

    一、类 创建类: 创建实例: 给实例绑定属性,例如绑定name和age: 案例 在类中封装方法:添加一个打印的方法...

网友评论

    本文标题:【python】给类或实例绑定方法或实例

    本文链接:https://www.haomeiwen.com/subject/hqrotxtx.html