gpt4 book ai didi

python - 如何在类中传递方法的返回值?

转载 作者:行者123 更新时间:2023-12-04 10:28:06 25 4
gpt4 key购买 nike

从类中的方法传递返回值的正确方法是什么?你总是在需要时调用该方法还是可以将返回值存储在 init 方法中?
假设我有:

class Foo():

def __init__(self):

def heavy_method(self):
#slow crunching
return crunch

def use_heavy_crunch(self):
data = self.heavy_crunch()
for i in data:
#do data stuff
#return data stuff

def other_func_that_need_heavy_method(self):
pass

d = Foo()
d.use_heavy_crunch()

我想知道的是上面的结构是正确的方法还是下面的方法等效或更好?
class Foo()

def __init__(self):
self.data = None

def heavy_method(self):
#slow crunching
self.data = crunch

def use_heavy_crunch(self):
for i in self.data:
#do data stuff
#return data stuff

def other_func_that_need_heavy_method(self):
pass

d = Foo()
d.heavy_method()
d.use_heavy_crunch()

所以在上面的例子中,一个方法在另一个方法中被调用,而在下面的例子中,方法的返回值被传递给 init 方法中的一个变量,然后在另一个函数中使用。

最佳答案

如果我理解正确,您正在尝试做类似的事情

class Foo():

def __init__(self):
self.data = self.heavy_method() # we assign the return value to an attribute of our object

def heavy_method(self):
#slow crunching
return crunch

def use_heavy_crunch(self):
for i in self.data: # Notice it's now self.data
#do data stuff
#return data stuff

def other_func_that_need_heavy_method(self):
pass

d = Foo()
d.use_heavy_crunch()

关于python - 如何在类中传递方法的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60548857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com