分别给Python类和实例增加属性和方法

Posted xushukui

tags:

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

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

#给类增加一个属性name
Student.name = ‘xm‘
print Student.name  # xm

#给类增加一个方法set_age
def set_age(self,age):
    self.age = age
Student.set_age = set_age
s = Student()
s.set_age(20)
print s.age  #20

#给实例属性增加一个属性:
s1 = Student()
s1.name = ‘xh‘
print s1.name  #xh

#给实例属性增加一个方法:
def set_score(self,score):
    self.score = score

from types import MethodType
s1.set_score = MethodType(set_score,s1)
s1.set_score(88)
print s1.score  #88
#而其它的实例对象并没有set_score方法
print s.score  #‘Student‘ object has no attribute ‘score‘

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

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

使用__slots__

python类和实例

python-类和对象(属性方法)的动态绑定

类和实例

python中函数和方法区别,以及如何给python类动态绑定方法和属性(涉及types.MethodType()和__slots__)