python-面向物件- 例項方法,類方法,靜態方法, 類屬性
阿新 • • 發佈:2022-11-29
名稱 | 定義方法 | 許可權 | 呼叫方法 |
---|---|---|---|
例項方法 | 第一個引數必須是示例,一般命名為self | 可以訪問例項的屬性和方法,也可以訪問類的例項和方法 | 一般通過示例呼叫,類也可以呼叫 |
類方法 | 使用裝飾器@classmethod修飾,第一個引數必須是當前的類物件,一般命名為cls | 可以訪問類的例項和方法 | 類例項和類都可以呼叫 |
靜態方法 | 使用裝飾器@staticmethod修飾,引數隨意,沒有self和cls | 不可以訪問類和例項的屬性和方法 | 例項物件和類物件都可以呼叫 |
1.例項
#coding=utf-8 class stu: school ="湘湖高中"; def __init__(self,name,age): self.name=name; self.age=age; def play(self): print "{name}在play".format(name=self.name); @classmethod def getschool(cls): print "school是{school}".format(school=cls.school); @staticmethod def getstatic(): print "this is staticmethod"; s=stu("jack",28); #通過例項呼叫例項方法 s.play(); #通過類呼叫例項方法 stu.play(s); #通過例項呼叫類方法 s.getschool(); #通過類呼叫類方法 stu.getschool(); #通過例項呼叫靜態方法 s.getstatic(); #通過類呼叫靜態方法 stu.getstatic();
執行結果:
jack在play jack在play school是湘湖高中 school是湘湖高中 this is staticmethod