原标题:带你了解Python的静态方法
Python静态方法
文章首发于 微信公众号:Python编程时光
这个标题「静态方法其实暗藏玄机」其实只是该文章的一个知识点。或许有些标题党,但没有关系,我相信有不少人对此并没有深入研究他们,不信我问你三个问题,你看能否答上来。
1、Python2.x和3.x中,函数和方法的区分有什么不同?
2、有了类/实例方法和普通函数,为什么还会有静态方法?
3、Python3.x 中,静态方法有几种写法?
带着这三个问题,你可以尝试在下文中寻找答案。
在 Python 2 中的函数和方法的区别,十分清晰,很好分辨。但在 Python3中,我却发现完全又是另一套准则。
首先先来 Python2 的(以下在 Python2.7中测试通过)
可以得出结论:
1、普通函数(未定位在类里),都是函数。
2、静态方法(@staticmethod),都是函数。
3、类方法(@classmethod),都是方法。
4、实例方法(首参数为self且非静态、非类方法的),都是方法。
你一定想说,类方法和实例方法,是方法没错呀,毕竟名字本身就有方法,普通函数是函数,我也理解呀。那静态方法,为什么不是方法而是函数呢?
名字只是一个外在的表面称呼,你能说「赵铁男」就一定是汉子吗?