Beispiele für Python-Klassen und Vererbungsoperationscodes

巴扎黑
Freigeben: 2016-12-07 10:32:20
Original
1278 Leute haben es durchsucht

Veröffentlichen Sie den Code, den Sie geschrieben haben, direkt als Referenz:

#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()
Nach dem Login kopieren


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage