类方法和静态方法

类方法

类方法是类对象所拥有的方法,创建类方法需要用装饰器@classmethod来标识,类方法的第一个参数必须是类对象,一般以cls作为第一个参数(不是必须的),类方法可以通过实例对象和类对象访问

使用类方法可以对类属性进行修改,比如:
class People(object):
    country = "China"

    @classmethod
    def get_country(cls):
        return cls.country

    @classmethod
    def set_country(cls, new_country):
        cls.country = new_country


p1 = People()
print(p1.get_country())  # 实例对象可以调用类方法
print(People.get_country())  # 类对象可以调用类方法

People.set_country("北京")  # 使用类方法修改类属性

静态方法,

静态方法是类中的函数,不需要实例,静态方法中不需要设计类中的属性和方法的操作。
静态方法是个独立的函数,仅仅存在于类的名称空间中,便于使用和维护

class People(object):
    country = "上海"

    @staticmethod
    def get_country():
        return People.country


print(People.get_country())

你可能感兴趣的:(类方法和静态方法)