【发布时间】:2019-04-02 09:06:59
【问题描述】:
我坚持使用创建以下对象的最佳方法:
我需要在创建对象时返回一个字典。我本可以只使用一个函数,但实际情况是,通过在创建对象时传递的参数执行某些操作。
情况是这样的:
class Example(object):
def __init__(self, param_a, param_b, param_c):
self.a = param_a
self.b = param_b
self.c = param_c
_tmp_1 = self._complex_function_1()
_tmp_2 = self._complex_function_2()
_tmp_3 = self._complex_function_3()
# I need here to return a dictionary. Now I'm saving the
# result in a variable call "self.values" and then access to
# it from the object created, but I don't like this approach...
def _complex_function_1(self):
# Make some calculations using "self"
def _complex_function_2(self):
# Make some calculations using "self"
def _complex_function_3(self):
# Make some calculations using "self"
而当我使用它时,我必须做到以下几点:
e = Example(a, b, c)
dict_values = e.values
简而言之:我想要的是 Example 返回一个字典。我认为将其作为单独的函数来做并不方便,因为方法是特定于Example 将它们转换为函数,并且还因为它们使用了self的参数。
有什么建议吗?
【问题讨论】:
-
如果你想返回一个字典,你为什么要做
Example类?只需创建一个返回字典的函数。 -
@Aran-Fey 正如我所说“我本可以只使用一个函数,但现实情况是,在创建对象时传递的参数会执行某些操作。”
-
@nikolat328 我不关注。你的类没有方法。将其重写为函数很简单。
-
@Aran-Fey 我的错。我更新了问题。谢谢你告诉我!
-
在您的示例中,
e.values是什么?