python - 在类方法中返回 self - 这是好方法吗?

标签 python class oop self

我有一个像下面这样的类(class)

class TestClass(object):

    def __init__(self, data):
            self.data = data

    def method_a(self, data):
            self.data += data/2
            return self

    def method_b(self, data):
            self.data += data
            return self

    def method_c(self, data):
            self.data -= data
            return self

每个方法都返回自己。我这样写是为了在一个链中调用几个方法,即。 object.method_a(10).method_b(12).method_c(11)。有人告诉我,方法中的 return self 不会返回当前对象,而是创建新对象。真的是这样吗?在 python 方法中使用 return self 是一种好习惯吗?

最佳答案

Is it really how it works?

不,它不会创建新对象,它会返回相同的实例。您可以使用 is 关键字进行检查,该关键字检查两个对象是否相同:

t = TestClass(3)
c = t.method_a(4)

print t is c
>>> True

Is it good practice to use return self in python methods?

是的,它通常用于允许链接。

关于python - 在类方法中返回 self - 这是好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22583307/

相关文章:

c++ - 如何在C++类中创建四个线程

Javascript - 添加具有不同值的相同属性

c# - 这是三层应用程序设计的良好实现吗?

python - 同时在多个文本小部件上进行多项选择

python - 如何将文件放入 django 的文件夹中进行设置

python - 扩建/先生。开发人员随机无法从 Git pull

python - ffmpeg 内嵌字幕以错误的字体呈现

python - Python 中的上下文相关方法 - 我做错了什么?

ruby-on-rails - 为什么 Rails 模型中的新类方法结果为零?

python - 多参数值错误