文章目录
cls 和self的区别
废话不多说,直接上案例:
class Web():
name = 'Testclsname'
def uname(self):
print ("self:",self)
@classmethod
def public(cls):
cls.age = 18
print ("cls:",cls)
#############调用对应的方法和类变量#############
#实例化web类
web = Web()
#实例调用方法uname
web.uname()
#Web类直接调用修饰器方法
Web.public()
#调用类变量
print (Web.name)
#############################结果打印#############################
C:\Users\sky\InitWeb.py
self: <__main__.Web object at 0x000001C4230A8580>
cls: <class '__main__.Web'>
Testclsname
从上面结果可以得出:
- web类进行实例化后才能进行方法的调用,所以self代表的是实例本身(uname方法),并且self返回内存地址
- Web类直接调用方法(public),被classmethod修饰后的public方法传入的cls为类本身,并且cls打印为类名
- 类变量可以直接使用类名进行调用