1. 程式人生 > >類和對象描述符

類和對象描述符

sel def import 應用場景 property 對象 number ati 描述符

@staticmethod

在類裏面給函數添加靜態方法,用法詳見有理數類,此方法使用於定義在類裏面的函數,它所描述的方法應該是在類裏面定義的一個非實例方法,這個方法只使用於這個類,所以不應該被定義為全局函數

@abc.abstractstaticmethod

此描述符需要用到abc模塊,應用場景為自定義一個父類,需要將其子類的方法全部必須要有父類的方法且一模一樣

將父類變成抽象類,需要用到abc模塊,

用法如下

?
# 抽象類
# 父類要限制
# 1;子類必須要有父類的方法
# 2:子類實現的方法必須跟父類的方法的名字一樣
?
?
import abc
?
?
class File(metaclass=abc.ABCMeta):
?
    @abc.abstractmethod
    def read(self):
        pass
?
    @abc.abstractmethod
    def write(self):
        pass
?
?
class Text(File):
?
    def write(self):
        pass
?
    def read(self):
        pass
?
if __name__ == ‘__main__‘:
    t = Text()
    t.write()

property修飾符

被property修飾符修飾的函數屬性可以像數據屬性一樣被訪問

class People:
    def __init__(self, name, age):
        self.name = name
        self.age = age
?
    @property
    def walk(self):
        print(‘walking‘)
        
        
p = People("egon", 18)
    p.walk

類和對象描述符