如何区分Python中的@classmethod与@staticmethod用法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2090个文字,预计阅读时间需要9分钟。
在Python面向对象编程中,类中定义的方法可以是:- 使用`@classmethod`装饰的类方法,用于操作类属性;- 使用`@staticmethod`装饰的静态方法,不涉及类或实例属性;- 不带装饰器的实例方法,直接操作实例属性。
如果将这些方法放在一起,对于初学者来说,可以更直观地理解面向对象编程的概念。
Python面向对象编程中,类中定义的方法可以是 @classmethod 装饰的 类方法 ,也可以是 @staticmethod 装饰的 静态方法 ,用的最多的还是不带装饰器的 实例方法 ,如果把这几个方法放一块,对初学者来说无疑是一头雾水,那我们该如何正确地使用它们呢?
先来个总结:
定义:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入):
1. 绑定到类的方法:用classmethod装饰器装饰的方法。
为类量身定制
类.boud_method(),自动将类当作第一个参数传入
(其实对象也可调用,但仍将类当作第一个参数传入)
2. 绑定到对象的方法:没有被任何装饰器装饰的方法。
本文共计2090个文字,预计阅读时间需要9分钟。
在Python面向对象编程中,类中定义的方法可以是:- 使用`@classmethod`装饰的类方法,用于操作类属性;- 使用`@staticmethod`装饰的静态方法,不涉及类或实例属性;- 不带装饰器的实例方法,直接操作实例属性。
如果将这些方法放在一起,对于初学者来说,可以更直观地理解面向对象编程的概念。
Python面向对象编程中,类中定义的方法可以是 @classmethod 装饰的 类方法 ,也可以是 @staticmethod 装饰的 静态方法 ,用的最多的还是不带装饰器的 实例方法 ,如果把这几个方法放一块,对初学者来说无疑是一头雾水,那我们该如何正确地使用它们呢?
先来个总结:
定义:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入):
1. 绑定到类的方法:用classmethod装饰器装饰的方法。
为类量身定制
类.boud_method(),自动将类当作第一个参数传入
(其实对象也可调用,但仍将类当作第一个参数传入)
2. 绑定到对象的方法:没有被任何装饰器装饰的方法。

