分析python代码中几处难点
2018-03-21 00:12
134 查看
最近在代码中见到了
诸如此类的句子,颇感疑惑,见识少,没办法,遂解之。
在类中若对方法用上述装饰器修饰,则表明这个方法在其他类中调用不需要实例化。
即静态方法,类似于c#,java里的 static 方法。
上述是两个语句是一起出现的,是声明抽象基类最简单的方式。
意思就是说,在基类里声明的抽象方法,需要在子类里实现。
比如基类Foo的fun方法被@abstractmethod装饰了,所以Foo不能被实例化;
子类SubA没有实现基类的fun方法也不能被实例化;
子类SubB实现了基类的抽象方法fun所以能实例化。
这样只有调用子类的时候才可以用这个方法。
若不同的子类有不同的实现方式,则可尝试用这个方法。
并且在python3和2中略有不同。
上述这一句是基础概念,子类的构造函数里加上super可以自动找到初始化父类的方法。
诸如此类的句子,颇感疑惑,见识少,没办法,遂解之。
@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可以自动找到初始化父类的方法。
相关文章推荐
- python发送arp欺骗攻击代码分析
- appium python-client代码分析(一)
- Python字符串操作和string模块代码分析
- logistic回归算法详细分析与Python代码实现注释
- 贝叶斯学习 -- matlab、python代码分析(1)
- Python-ceilometerclient 代码分析
- python pandas 分析数据时的代码片断
- Python代码中的捕捉性能-CPU分析(解释器)
- Python数据分析与挖掘实战代码纠错 代码3-3
- appium python-client代码分析(二)
- python ethereum 代码分析 《3》
- 决策树的Python代码实现与分析
- python代码优化案例分析
- Python代码分析工具之dis模块
- 《200行Python代码实现2048》分析
- Python数据分析与挖掘实战代码纠错 代码3-1
- 分析并输出Python代码依赖的库的实现代码
- appium python-client代码分析(三)
- Python 文件操作技巧(File operation) 实例代码分析
- Python代码分析工具:PyChecker、Pylint