靜態屬性、類方法、靜態方法

靜態屬性:函數

  既能夠訪問實例屬性也能夠訪問類屬性(self)工具

 1 # --------------靜態屬性:數據屬性----------
 2 class Room:  3     def __init__(self,name,owner,width,length,height):  4         self.name=name  5         self.owner=owner  6         self.width=width  7         self.length=length  8         self.height=height  9  @property 10     def area_room(self): 11         print('%s住的%s房間的面積是%s' %(self.name,self.owner,self.width*self.length)) 12         return self.length*self.width 13 r1=Room('大樹','501',3,8,5) 14 r2=Room('果果','502',10,10,5) 15 # print('%s住的%s房間面積是%s' %(r1.name,r1.owner,r1.width*r1.length))
16 # r1.area_room()
17 # r2.area_room()
18 
19 #封裝屬性
20 print(r1.area_room) 21 print(r2.area_room) 22 print(r1.name) 23 print(r2.name)

類方法:this

@classmethod 參數默認爲cls-->類 能夠訪問類屬性spa

# -------------------------類方法:數據屬性和函數屬性--------------------- # 調用時不與任何實例捆綁 # 類級別的操做 與實例無關 不能訪問實例屬性
class Room: tag=1
    def __init__(self,r_numb,owner,length,width,heigh): self.r_numb=r_numb self.owner=owner self.length=length self.width=width self.heigh=heigh @classmethod#類方法加classmethod
    def tell_info(cls): print('this is a test') print(cls.tag) Room.tell_info()#類調用本身的方法 self參數問題

靜態方法:code

@staticmethod 不能訪問類屬性和實例屬性blog

# -----------------------靜態方法-------------------- # class Room: def __init__(self,name,owner,width,length,height): self.name=name self.owner=owner self.width=width self.length=length self.height=height @property def area_room(self): return self.length * self.width @classmethod # 類方法加classmethod
    def tell_info(cls): print('this is a test') print(cls.tag) # 靜態方法:類的工具包 不與類、實例綁定,不能使用類變量和實例變量
 @staticmethod def bathe(): print('洗澡') #test()函數無心義
    def test(x,y):#實例沒辦法調用此函數 r1.test(1,2)
        print(x+y) # print(Room.__dict__) # r1=Room('102','大樹',10,3,4)
Room.bathe()
相關文章
相關標籤/搜索