您的位置:首页 > 编程语言 > Python开发

分析python代码中几处难点

2018-03-21 00:12 134 查看
最近在代码中见到了

诸如此类的句子,颇感疑惑,见识少,没办法,遂解之。

@staticmethod


在类中若对方法用上述装饰器修饰,则表明这个方法在其他类中调用不需要实例化。

即静态方法,类似于c#,java里的 static 方法。



__metaclass__ = abc.ABCMeta
@abstractmethod


上述是两个语句是一起出现的,是声明抽象基类最简单的方式。

意思就是说,在基类里声明的抽象方法,需要在子类里实现。

比如基类Foo的fun方法被@abstractmethod装饰了,所以Foo不能被实例化;





子类SubA没有实现基类的fun方法也不能被实例化;



子类SubB实现了基类的抽象方法fun所以能实例化。



这样只有调用子类的时候才可以用这个方法。

若不同的子类有不同的实现方式,则可尝试用这个方法。

并且在python3和2中略有不同。





def __init__(self):
super(MyClass,self).__init__()


上述这一句是基础概念,子类的构造函数里加上super可以自动找到初始化父类的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: