我有一个像下面这样的类(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/