这一周,为了封装代码,学习了Python中的一些知识。主要是使用abc库和多态、property的使用。
abc库
abc库主要用到了abstractmethod和abstractproperty,它们都是用python中的装饰器实现的。
其中,abstractmethod是定义一个抽象的方法,基类不去实现,然后让子类去实现。子类如果不实现的话,就不能初始化实例。使用参考:
class C(metaclass=ABCMeta):
@abstractproperty
def my_abstract_property(self):
...
还有,abstractproperty它的功能就是定义一个抽象的属性,然后让基类实现。不过,最近的版本中已经废弃了,可以结合property和abstractmethod来使用。
多态
多态,其实这个在任何面向对象中都会用到,python也有面向对象,用法都差不多,这里不多做总结。
property
property这个定义属性,可以定义get方法和set方法,这个和OC语言差不多,但是使用起来可能有些区别,代码示例如下:
@property
def bid_num(self):
return self._bid_num
@bid_num.setter
def bid_num(self, value):
self._bid_num = self._handle_on_property(value)
其中,上面的一个方法是get方法,而set方法则是使用@property_name.setter方式进行声明。
写代码
就是运用以上的一些基本知识,结合起来写一些框架性、更通用的代码
总结
abc模块是使用修饰器来进行处理,可以看出修饰器是一个很强大的东西,它可以在语法层面增加很多想象的空间。