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()  # 静态方法


------分界线------

亦仁子:
不要脑海里给自己加各种戏,找各种存在感。

因为真没什么人在乎你,大家都非常忙,

没有完美主义,干就完了。

posted @ 2021-11-29 20:12  西瓜_皮  阅读(667)  评论(0编辑  收藏  举报