类和对象描述符

 

@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

 

posted @ 2017-07-05 20:11  戴维德  阅读(193)  评论(0编辑  收藏  举报