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'> (表明是类)