我正在使用具有4级嵌套函数的python代码。您可以在下面看到一个示例:
class TestClass:
def __init__(self):
pass
def calculate(self, x, y):
results = []
result = None
context = API.send_request('get_context')
if context['result'] == 'ok':
result = context['data']
# Some more actions here
def _is_valid_variable(variable):
if (variable > 0 and
variable % 2 == 0 and
variable < 10):
return True
return False
def _format_data(data):
formatted_data = None
def _extract_time(line):
time = None
if line:
time = line.split('|')[-1]
return time
if data:
for line in data.split('\n'):
formatted_data += '[DEBUG] [{0}] {1}'.format(_extract_time(line), line.split('|')[1])
return formatted_data
return results
在这个例子中,只有3个级别,但想法是相同的。
构建此类代码的更好方法是什么?
将所有闭包/内部函数放在父函数的开头是不是更好地混合代码?
P.S。我不想将这些函数放到类的级别,只要它们实际上与类不相关,而只是它们的父函数。
答案 0 :(得分:1)
这些是普通函数,既不依赖于您的类或实例,也不依赖于调用函数的上下文,因此只需将它们放在模块的顶层。