以下代码诠释实例方法、类方法及静态方法的使用
import inspect
class Class1:
def __init__(self, length, width): # 初始化
self.length = length # 将用户传的参数转为实例自身
self.width = width # 将用户传的参数转为实例自身
def perimeter(self): # 实例方法 只能实例化调用
return self.length * self.width
def area(self):
return (self.length + self.width) * 2
@classmethod # 该装饰器声明下面方法属于类方法;实例可以调用,类本身也可以调用
def features(cls, a, b):
return a * b
@staticmethod # 该装饰器声明下面方法属于静态方法,本质上是函数,只是写在了类里面;实例可以调用,类本身也可以调用
def sumdata(a, b):
return a + b, '我是静态方法'
# re = Class1(2, 3)
# print(type(rq.perimeter)) # 实例方法
# print(type(Class1.features)) # 类方法
# # print(type(Class1.sumdata)) # 静态方法
# print(inspect.ismethod(re.perimeter)) # 该方法询问是否是method 返回布尔值
# print(inspect.isfunction(re.perimeter)) # 该方法询问是否是function 返回布尔值