在学习Python和编程的过程中,我遇到了一个不太确定的概念。我正在编写一个脚本,我很好奇我是否已经创建了一个对象,如果我想从该对象的一个方法中访问返回的值,它会重新运行该方法,还是仅仅用这些值来回复。例如:
class ClassOne():
def oneMethod(self):
x = 2
y = 10
return x, y
class ClassTwo():
def twoMethod(self, x, y):
...
newObject = ClassOne()
newObject.oneMethod()
secondObject = ClassTwo()
# My question is, will the lines below re-execute newObject.oneMethod()
# or will it simply pull the already returned value
secondObject.twoMethod(newObject.oneMethod()[0],
newObject.oneMethod()[1])
虽然我的脚本不一定大到足以超级担心性能,但这只是我想知道的事情,在网上找不到太多关于它的信息
答案是肯定的,方法每次被调用时都会重新执行
您可以通过在
oneMethod()
中添加对print()
的调用来验证这一点,以查看是否每次调用它时都执行它的代码。你会发现是的通过将返回值绑定到某些变量,可以避免重新执行,例如
这里元组
(2, 10)
将从oneMethod()
返回,并将其解压到变量a
和b
中,这样a = 2
和b = 10
。也可以使用单个元组变量,然后通过索引访问各个元素:另一种不必先保存返回值的方法是使用
*
运算符的元组解包将oneMethod()
的返回值直接传递到twoMethod()
:你的题目和正文问了一个不同的问题
不,访问方法的结果不会重新运行该方法。但那不是你在这里要做的;您显式地调用该方法两次,因此它当然会运行两次
通常的做法是将返回值赋给一个变量,并根据需要多次使用它
相关问题 更多 >
编程相关推荐