[英]How can I increase code readability in python for this?
我在 Flask 中运行我的脚本,为了捕获并打印服务器上的错误,我创建了一些函数,如果成功则返回None
,否则返回一条error message
。
问题是我有许多函数一个接一个地运行并使用早期 function 的全局变量,这使得代码变得杂乱无章。 我能做什么?
from flask import Flask
from main import *
app = Flask(__name__)
@app.route('/')
def main():
input = request.args.get('input')
first_response = function1(input)
if first_response is None:
second_response = function2() # no input from hereon
if second_response is None:
third_response = function3() # functions are imported from main.py
if third_response is None:
...
if ...
else ...
else:
return third_response
else:
return second_response
else:
return first_response
def function1(input):
global new_variable1
if input is valid:
new_variable1 = round(input,2)
else:
return "the value is not integer"
def function2():
global new_variable2
if new_variable1 > 8:
new_variable2 = new_variable1 / 8
else:
return "the division is not working, value is 0"
def function3():
...
这只是正在发生的事情的演示。 最后一个 function 将在任一侧返回一个值。 因此,如果一切顺利,我将能够看到正确的 output,并且我将在任何给定的 function 上看到错误。
代码工作正常,但我需要更好的选择来做到这一点。
谢谢!
啊......你已经(正确地)确定你有两件事要做:
因此,让我们用参数替换全局数据来处理数据(稍后再回到错误处理)。 你想做这样的事情。
def function1(some_number):
if some_number is valid:
return round(some_number, 2)
def function2(a_rounded_number):
if a_rounded_number > 8:
return a_rounded_number / 8
所以每个 function 应该返回它的工作结果。 然后调用例程可以将每个 function 的结果发送到下一个 function,如下所示:
# [code snipped]
result1 = function1(the_input_value)
result2 = function2(result1)
result3 = function3(result2)
但是......我们如何处理意外或错误情况? 我们使用异常,像这样:
def function1(some_number):
if some_number is valid:
return round(some_number, 2)
else:
raise ValueError("some_number was not valid")
然后在调用程序中
try:
result1 = function1(some_input_value)
except (ValueError as some_exception):
return str(some_exception)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.