python中return self用法详解
  TEZNKK3IfmPf 2023年11月13日 13 0

直接上代码来理解return self的用法!

示例代码1:

class Test(object):

    def __init__(self):
        self.age = 25

    def add(self):
        self.age += 1
        print(self.age)


obj = Test()
obj.add()

运行结果:

python中return self用法详解

有时候当我们想对实例对象的方法进行连续调用时,可能会写下面的代码所示:

示例代码2:

class Test(object):

    def __init__(self):
        self.age = 25

    def add(self):
        self.age += 1
        print(self.age)


obj = Test()
obj.add().add()  #  注意:这种写法是错误的

运行结果:

python中return self用法详解

        那么该如何实现实例对象的方法进行连续调用呢?self其实就是实例对象本身,返回的是一个类实例,那么return self 就是返回实例对象本身。

示例代码3:

class Test(object):

    def __init__(self):
        self.age = 25

    def add(self):
        self.age += 1
        print(self.age)
        return self


obj = Test()
ret = obj.add().add().age
print(ret)

运行结果:

python中return self用法详解

再看下面示例代码4至示例代码6

示例代码4:

class Test(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def set_name(self, name):
        self.name = name

    def set_age(self, age):
        self.age = age

    def get_name(self):
        return self.name

    def get_age(self):
        return self.age


obj = Test('张三', 25)
print(obj.get_name())
print(obj.get_age())

运行结果:

python中return self用法详解

示例代码5:  【当实例对象的方法进行连续调用时报错了】

class Test(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def set_name(self, name):
        self.name = name

    def set_age(self, age):
        self.age = age

    def get_name(self):
        return self.name

    def get_age(self):
        return self.age


obj = Test('张三', 25)
print(obj.get_name())
print(obj.get_age())

print(obj.set_age(26).get_age())

运行结果:

python中return self用法详解

示例代码6:  【在set_name()和set_age()方法中添加了return self】

class Test(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def set_name(self, name):
        self.name = name
        return self

    def set_age(self, age):
        self.age = age
        return self

    def get_name(self):
        return self.name

    def get_age(self):
        return self.age


obj = Test('张三', 25)
print(obj.get_name())
print(obj.get_age())

print(obj.set_age(26).get_age())

运行结果:

python中return self用法详解

如示例代码6所示,实现了实例对象的方法进行连续调用

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   30   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   24   0   0 python
  TEZNKK3IfmPf   2024年05月31日   22   0   0 python
TEZNKK3IfmPf