gpt4 book ai didi

python : is it ok returning both boolean and string?

转载 作者:太空狗 更新时间:2023-10-29 20:32:14 24 4
gpt4 key购买 nike

原始问题

我创建了一个函数,它正在等待一个特定的字符串出现在串口上,并返回所有读取的字符,直到找到该字符串,否则返回 false。这很方便,但我想知道这是否被认为是不好的做法?

澄清:

主要目标是等待特定 字符串在给定时间内出现。除了 IO 错误,可能的结果是 True(字符串确实出现)或 False次要目标是获得完整的输出,因为在查找实际答案之前可能有一些我想解析的信息。我想也许我可以将主要目标和次要目标结合在一个返回值中。

def MyFunc(s, timeout) :
test = get_some_input(timeout)
if test.endswith(s)
return test
else
return False

编辑:另一个建议的答案是引发异常。我认为这不是一个好主意,因为超时是一种预期的行为。我的意思是,如果有指定超时的参数,那么超时是一种可能的结果,而不是异常(exception)。

编辑 2:由于我需要存储输入,也许使用类是正确的解决方案。 wait for 函数有明确的返回值,但也可以访问直到超时为止读取的整个字符串。

class Parser :
def __init__(self, sport_name):
self.currentMsg = ''
self.ser = serial.Serial(sport_name, 115200)
def WaitFor(self, s, timeOut=None):
self.ser.timeout = timeOut
self.currentMsg = ''
while self.currentMsg.endswith(s) != True :
# should add a try catch here
c=self.ser.read()
if c != '' :
self.currentMsg += c
else :
print 'timeout waiting for ' + s
return False
return True

最佳答案

返回 None 而不是 False 不是更合适吗?

关于 python : is it ok returning both boolean and string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/657857/

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