Home  >  Article  >  Backend Development  >  Python classes and inheritance operation code examples

Python classes and inheritance operation code examples

巴扎黑
巴扎黑Original
2016-12-07 10:32:201262browse

Post the code you wrote directly for reference:

#encoding=utf-8
__author__ = 'Administrator'
# 类的定义
# **kw 在创建类的实例对象的时候动态的给对象添加参数
class Person(object):
    def __init__(self,name,age,**kw):    ##每个类都有个init 方法
        self.name = name
        self.age = age
        for k,v in kw.iteritems():
            setattr(self,k,v)     ## 用setattr 将动态属性赋值给类对象
class Teacher(Person):  #继承Person类
    __score=0     ## 定义类的私有属性  不能被外界访问
    def __init__(self,name,age,score):
        self.__score = score
        super(Teacher,self).__init__(name,age)    ##继承父类的初始化方法
        print "Teacher.__score =",self.__score
    #---方法也分类方法和实例方法
    #定义类方法 @classmethod 声明 可以直接用Teacher.getScoreForClass()来调用
    @classmethod
    def getScoreForClass(cls):
        return cls.__score
    #定义实例方法 直接用Teacher.getScoreForClass()来调用会报错
    # p.getScoreForExample()
    def getScoreForExample(self):
        return self.__score
from types import MethodType
if __name__ =="__main__":
    #te = Person("TOM",35,addr="USA",sex="M")  ## 类的实例对象 te
    '''
    可以直接改变对象实例的值,如:
    te.name = "BOB"
    也可以直接给对象实例添加属性,如:
    te.lover = "SUM"
    这样并没有给类添加属性,当你在此常见一个类实例时是没有刚才添加的属性的
    '''
    print "befor:", Teacher.getScoreForClass()
    p = Teacher("TOM",33,100)
    print "after :", p.getScoreForExample()
    print "after :",Teacher.getScoreForClass()


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn