最近学习到 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,它表示这个类本身
如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身
这是啥意思呢,自己再总觉如下
def() -> 一般的方法,当函数用
def(self) -> 实例的方法,感觉也当函数用
def(cls) -> 类方法,感觉也在当函数用
先放着,边学习变改正,虽然还没理解,而且自己总结的也可能是错的 so what