python类方法和实例方法
时间: 2023-10-29 13:57:56 浏览: 111
python基础训练题-类和方法的概念和实例 类(Class):用来描述具有相同的属性和方法的对象的集合
Python中的类方法和实例方法有什么区别?
类方法通过装饰器@classmethod进行修饰,可以通过类名或实例对象来调用。而实例方法属于方法类型的函数,只能通过实例化后的对象来调用。
类方法和实例方法之间的功能差异在于调用方式和作用范围上也有所不同。类方法有两种调用方式,一种是通过类名来调用,另一种是通过实例化后的对象来调用。而静态方法也有两种调用方式,一种是通过类名来调用,另一种是通过实例化后的对象来调用。实例方法只能通过实例化后的对象来调用。
举个例子来说明:
```python
class FunctionTest:
fun = "test"
def __init__(self):
self.__name = "function"
self.__age = 2
@classmethod
def execute_class(cls):
logging.info("this is class method!")
@staticmethod
def execute_static(x):
logging.info("this is static method!")
logging.info(f"{x} is a num.")
def execute_normal(self):
logging.info("This is normal method!")
if __name__ == '__main__':
# 实例化调用
FT = FunctionTest()
FT.execute_normal() # 实例化调用
FT.execute_static(7)
FT.execute_class()
# 类名调用
FunctionTest.execute_static(9)
FunctionTest.execute_class()
```
在上面的例子中,`execute_class`是一个类方法,可以通过类名或实例化后的对象来调用。而`execute_static`是一个静态方法,也可以通过类名或实例化后的对象来调用。而`execute_normal`是一个实例方法,只能通过实例化后的对象来调用。
阅读全文