self / cls

区分

在定义类中:

  • self 代表初始化的实例;
  • cls 代表类本身;

链式操作 / return self

有时候在代码中看到,会 return self, 这是返回实例自身。利用此特性可是实现链式操作。

比如在redis-py中的pipeline中也可以链式调用,比如pipe.set('foo', 'bar').sadd('faz', 'baz').incr('auto_number').execute()

class Pipe:

    context = {}

    def set(self,key,value):
        self.context[key]=value
        return self

    def sadd(self,key,value):
        self.context[key] = value
        return self

    def incr(self, key):
        return self

    def execute(self):
        print(self.context)

你可能感兴趣的:(self / cls)