关于 python cls 笔记

来源:互联网 发布:业务管理系统 源码 编辑:程序博客网 时间:2024/06/06 04:29

最近学习到 class后发下你有的class 中有 cls,有的无cls,code如下

class A():def pen(cls):print "pen"bag = "M&R"def knife(cls, size):print "knife"bag = "SWISSGEAR, size%s" % size

起先没搞明白 这括号里的 cls是什么,因为 一般都是 self,网上搜索得知如下:


普通的方法,第一个参数需要是self,它表示一个具体的实例本身。
如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身 

这是啥意思呢,自己再总觉如下

def() -> 一般的方法,当函数用
def(self) -> 实例的方法,感觉也当函数用
def(cls) -> 类方法,感觉也在当函数用


先放着,边学习变改正,虽然还没理解,而且自己总结的也可能是错的 so what大笑