python中return cls用法详解

cls介绍:

        python中cls代表的是类的本身,相对应的self则是类的一个实例对象。

        因为cls等同于类本身,类方法中可以通过使用cls来实例化一个对象。

示例代码1:

class BaseTest(object):

    def __init__(self, name, age):
        self.name = name
        self.age = age

    @classmethod
    def run(cls, param_name, param_age):
        return cls(name=param_name, age=param_age)

    def ret_data(self):
        return self.name, self.age


test = BaseTest('dgw', 26)
ret = test.run('aa', 25)
print(ret.name, ret.age)
print(test.ret_data())
print(ret.ret_data())

运行结果:

示例代码2:

class BaseTest(object):

    def __init__(self, name, age):
        self.name = name
        self.age = age

    @classmethod
    def run(cls, param_name, param_age):
        return cls(name=param_name, age=param_age)

    def ret_data(self):
        return self.name, self.age


# test = BaseTest('dgw', 26)
# ret = test.run('aa', 25)
# print(ret.name, ret.age)
# print(test.ret_data())
# print(ret.ret_data())
ret = BaseTest.run('aa', 25)
print(ret)
print(ret.name, ret.age)
print(ret.ret_data())

运行结果:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值