Python - Django

Python - self 和 cls理解

2018-07-09  本文已影响1人  廖马儿

self,一般指的是类的实例。
cls,一般指的是类。

class A(object):
    def foo1(self): # 普通的方法,第一个参数需要是self,它表示一个具体的实例本身。
        print('Hellow', self)

    @staticmethod
    def foo2():  # 如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
        print('hello')

    @classmethod
    def foo3(cls): # 而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身。
        print('hellow', cls)


if __name__ == "__main__":
    a = A()
    a.foo1()   # Hellow <__main__.A object at 0x102a08908> (表明是类实例)
    A.foo2(a)  # hello  (没有用)
    A.foo3()   # hellow <class '__main__.A'> (表明是类)
上一篇下一篇

猜你喜欢

热点阅读