Python学习之路(二)---类

python中的类方法、静态方法、实例方法

class Person():
    country = 'china'

    def __init__(self):
        self.name = 'root'
        self.age = 30

    # 实例方法
    def test(self):
        self.country = 'xxx'
        print("实例方法", self)

    # 静态方法
    @staticmethod
    def test2():
        print("静态方法")

    # 类方法
    @classmethod
    def test3(cls):
        cls.country = 'japan'
        print("类方法", cls)

由此我们可以知道self指向的是实例对象所在的内存空间,而cls指向的是类对象。当我们调用实例方法的时候,python解释器会自动将实例对象传入self,而当我们调用类方法的时候,python解释器则会将类对象存入到cls中。

类方法:

类方法在Python中使用比较少,类方法传入的第一个参数为cls,是类本身。并且,类方法可以通过类直接调用,或通过实例直接调用。但无论哪种调用方式,最左侧传入的参数一定是类本身

通常情况下,类方法使用@classmethod装饰器来声明

p = Person()
p.test2()
Person.test2()

实例方法:

除静态方法与类方法外,类的其他方法都属于实例方法。必须包含参数 self,且为第一个参数,self指的是类实例对象本身,不是类本身。。如果要调用实例方法,那么就必须要进行实例化。实例化就会占用一些内存空间,如果使用类直接调用实例方法,需要显式地将实例作为参数传入。

p = Person()
p.test1()
Person.test1(p)

静态方法:

静态方法是指类中无需实例参与即可调用的方法(不需要self参数),在调用过程中,无需将类实例化,直接在类名之后使用.号运算符调用方法。通常情况下,静态方法使用@staticmethod装饰器来声明。

p = Person()
p.test3()
Person.test3()

你可能感兴趣的:(python,学习,python)