python - 静态方法
静态方法
类对象的静态方法只是一个普通函数,把普通函数归类于类对象,可以方便代码管理。
在类对象中定义静态方法时,必须使用装饰器@staticmethod进行装饰。
静态方法只是一个普通函数,所以第一个形参没有特殊含义和要求。
静态方法可以被对象调用,语法:类对象.方法名([实参]) 或 cls.方法名([实参])。
静态方法也可以被实例对象所调用,语法:实例对象.方法名([实参]) 或 self.方法名([实参])。
类对象的所有实例对象都有一个指向类对象的指针,所以,类对象的所有实例对象都可以调用类对象中
定义的类方法。
调用静态方法时的参数传递和调用普通函数是一样。
class MyClass(object):
# 在类对象中定义的静态方法
@staticmethod
def tom(age, weight): # 没有 self
print(age, weight)
@classmethod
def get_info(cls):
# 通过类对象调用类方法
MyClass.tom(88, 77)
def my_info(self):
# 通过实例对象调用静态方法
self.tom(18, 45)
# 通过类对象调用静态方法
MyClass.tom(21, 46) # 21 46
# 实例化
mc = MyClass()
# 通过实例对象调用静态方法
mc.tom(33, 77) # 33 77
# 通过类对象调用类方法
mc.get_info() # 88 77
mc.my_info() # 18 45
实例方法、类方法、静态方法综合例子
class MyClass(object):
def __init__(self, name):
self.name = name
def get_info(self): # 定义实例方法,有 self 参数
print("实例方法")
@classmethod
def get_other(cls): # 定义实例方法,有 cls 参数
print("类方法")
@staticmethod
def get_my_class(): # 定义静态方法,无默认参数
print("静态方法")
# 实例化
mc = MyClass("tom")
# 调用实例方法
mc.get_info() # 实例方法
# 调用类方法,建议通过 类对象.类方法([实参]) 方法调用
MyClass.get_other() # 类方法
# 调用静态方法,建议通过 类对象.类方法([实参]) 方法调用
MyClass.get_my_class() # 静态方法
------分界线------
亦仁子:
不要脑海里给自己加各种戏,找各种存在感。
因为真没什么人在乎你,大家都非常忙,
没有完美主义,干就完了。