直接貼自己寫的代碼做參考:
#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.__scorefrom types import MethodTypeif __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()