在当前项目中,我敢于废除旧的0规则,即在函数成功时返回0.如何在社区中看到这一点?我对代码(以及因此对同事和所有后续维护程序员)施加的逻辑是:
.> 0:任何成功/实现,即积极的结果
== 0:表示没有进展或繁忙或未完成,这是关于结果的零信息
<0:对于任何类型的错误/不可行性,即负面结果
在实时系统中,许多硬件单元之间存在不可预测的响应时间,许多功能需要准确地传达这种三元逻辑,所以我认为抛弃简约的标准返回逻辑是合法的,代价是几个WTF的代价.在程序员方面.
Opininons?
PS:在旁注中,罗马帝国崩溃了,因为罗马人的数字系统缺少0,从来不知道他们的C功能何时成功!
我有以下功能:
| def line_reader_iter(file_object):
| while True:
| a_line = file_object.readline()
| if len(a_line)==0: raise StopIteration
| yield a_line[:-1]
Run Code Online (Sandbox Code Playgroud)
我说的某个地方:
| line_reader = lambda: next(line_reader_iter(infile))
Run Code Online (Sandbox Code Playgroud)
显然,lambda只能运行,因为编译时与运行时行为似乎存在差异,这是非常受欢迎的:line_reader_iter()将对iterator对象的引用放入lambda表达式而不是创建生成器每次评估lambda时都对象.但是:这种便携且稳定的行为?我只是一个Python新手,我不知道我的代码是否在Python执行模型的灰色区域.有人可以赐福我吗?
slarti