python - 如何在 Python 中替换全局变量
问题描述
我希望有人能给我一些关于如何改进我的代码的建议,这样我就不需要使用全局变量了。(我稍微简化/缩短了下面的代码以专注于问题)
代码工作如下:有两个进程(平移和倾斜),它们都使用函数 pid_process 来计算错误号。如果平移和倾斜错误状态均低于 10(均为真),我想做点什么。
我已经让它与全局变量一起工作,但它似乎不是 Python 中的最佳方式,我想知道是否有人可以帮助我编写更好的代码。
tilt_error = False
pan_error = False
def checkErrorMargin(action, error):
global tilt_error
global pan_error
if 'tilt' in action:
if error < 10:
tilt_error = True
else:
tilt_error = False
return tilt_error
else:
if error < 10:
pan_error = True
else:
pan_error = False
return pan_error
def pid_process(action, error):
global tilt_error
global pan_error
# in original code - error number will be calculated here
if 'tilt' in action:
tilt_error = checkErrorMargin(action, error)
else:
pan_error = checkErrorMargin(action, error)
if tilt_error and pan_error:
print("do something")
for x in range(0,3):
pid_process("pan", x+8)
pid_process("tilt", x+1)
解决方案
谢谢您的帮助。它现在正在工作
def checkErrorMargin(action, error):
if 'tilt' in action:
if error < 10:
tilt_error = True
else:
tilt_error = False
return tilt_error
else:
if error < 10:
pan_error = True
else:
pan_error = False
return pan_error
def pid_process(action, error):
if 'tilt' in action:
tilt_error = checkErrorMargin(action, error)
return tilt_error
else:
pan_error = checkErrorMargin(action, error)
return pan_error
for x in range(0,3):
pan_error = pid_process("pan", x+8)
tilt_error = pid_process("tilt", x+1)
if tilt_error and pan_error:
print("fire")
推荐阅读
- javascript - 将时间戳转换为特定格式?
- javascript - 解析历史 UTC 日期时间会产生奇怪的时区偏移
- android - 无法在barcode_scanner颤振中找到明确的活动类
- powershell - 如何使用net user远程更改用户密码
- c# - 串口通信问题(非常重)C#
- html - 如何在html中调整标签大小
- php - 如何在 PHP 中持续等待下一个输入
- java - 将增强循环转换为 Java 8 Streams,过滤器
- reactjs - 为什么要使用 redux-saga?
- excel - 如何从 excel 数据中仅查看可以匹配等于名称范围的条件的特定单元格范围(命名范围)?