Python中classmethod, staticmethod和普通method的区别
2010-08-06 14:59
615 查看
staticmethod
基本上和一个全局函数差不多,只不过可以通过类或类的实例对象(python里说光说对象总是容易产生混淆,
因为什么都是对象,包括类,而实际上类实例对象才是对应静态语言中所谓对象的东西)来调用而已,
不会隐式地传入任何参数。这个和静态语言中的静态方法比较像。
classmethod
是和一个class相关的方法,可以通过类或类实例调用,并将该class对象(不是class的实例对象)隐式地
当作第一个参数传入。就这种方法可能会比较奇怪一点,不过只要你搞清楚了python里class也是个真实地
存在于内存中的对象,而不是静态语言中只存在于编译期间的类型,就好办了。
正常的方法就是和一个类的实例对象相关的方法,通过类实例对象进行调用,并将该实例对象隐式地作为第一
个参数传入,这个也和其它语言比较像。
基本上和一个全局函数差不多,只不过可以通过类或类的实例对象(python里说光说对象总是容易产生混淆,
因为什么都是对象,包括类,而实际上类实例对象才是对应静态语言中所谓对象的东西)来调用而已,
不会隐式地传入任何参数。这个和静态语言中的静态方法比较像。
classmethod
是和一个class相关的方法,可以通过类或类实例调用,并将该class对象(不是class的实例对象)隐式地
当作第一个参数传入。就这种方法可能会比较奇怪一点,不过只要你搞清楚了python里class也是个真实地
存在于内存中的对象,而不是静态语言中只存在于编译期间的类型,就好办了。
正常的方法就是和一个类的实例对象相关的方法,通过类实例对象进行调用,并将该实例对象隐式地作为第一
个参数传入,这个也和其它语言比较像。
相关文章推荐
- python 中 @classmethod 、staticmethod 和 普通方法 的区别
- Python中普通方法、staticmethod、classmethod的区别
- python中 classmethod、staticmethod和普通方法的区别
- 飘逸的python - @staticmethod和@classmethod的作用与区别
- python中staticmethod和classmethod的区别
- Python中@staticmethod和@classmethod的区别和用法
- python 3全栈开发-面向对象之绑定方法(classmethod与staticmethod的区别)、多态、封装的特性property
- 【python】classmethod & staticmethod 区别
- python中staticmethod classmethod及普通函数的区别
- Python: classmethod & staticmethod 区别
- 基于python中staticmethod和classmethod的区别(详解)
- Python: classmethod & staticmethod 区别
- Python中classmethod与staticmethod区别
- python中staticmethod classmethod及普通函数的区别
- 飘逸的python - @staticmethod和@classmethod的作用与区别
- python的静态方法以及@staticmethod或@classmethod的区别
- python中@staticmethod和@classmethod的作用与区别
- Python语言学习讲解二:@staticmethod和@classmethod的作用与区别
- python - @staticmethod和@classmethod的作用与区别
- Python - 静态函数(staticmethod), 类函数(classmethod), 成员函数 区别(完全解析)