[英]Setting a member variable VS returning a value from a method
因此test
和test2
完全相同,但前者通過返回值來實現,后者則通過設置成員變量來實現。
class test:
def __init__(self):
pass
def do(self):
val = self.doMore(5)
print val
def doMore(self, _v):
return _v * _v
class test2:
def __init__(self):
pass
def do(self):
self.doMore(5)
print self.val
def doMore(self, _v):
self.val = _v * _v
val
變大時,是否有任何性能差異? 我在游盪,因為有時我想從一個方法中挑出一個較小的任務,這個任務在概念上與父方法無關; 我覺得test2
更像是OOP,但另一方面,如果類中唯一使用doMore
工作的doMore
是do
我可以保存一個成員變量嗎?
他們做的並不完全一樣。 在test
, doMore
的結果是短暫的; 一旦它被打印,它就消失了。 但是在test2
,該值是對象的一部分,並且仍然是其中的一部分。 因此,如果您在打印后不需要該值,請進行test
; 如果你這樣做,請使用test2
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.