小编sla*_*ast的帖子

放弃C中的规则有多糟糕(又名:成功时返回0)?

在当前项目中,我敢于废除旧的0规则,即在函数成功时返回0.如何在社区中看到这一点?我对代码(以及因此对同事和所有后续维护程序员)施加的逻辑是:

.> 0:任何成功/实现,即积极的结果

== 0:表示没有进展或繁忙或未完成,这是关于结果的零信息

<0:对于任何类型的错误/不可行性,即负面结果

在实时系统中,许多硬件单元之间存在不可预测的响应时间,许多功能需要准确地传达这种三元逻辑,所以我认为抛弃简约的标准返回逻辑是合法的,代价是几个WTF的代价.在程序员方面.

Opininons?

PS:在旁注中,罗马帝国崩溃了,因为罗马人的数字系统缺少0,从来不知道他们的C功能何时成功!

c

4
推荐指数
3
解决办法
596
查看次数

lambda中发电机的行为是否能够抵御未来的变化?

我有以下功能:

|    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

python lambda yield generator readline

3
推荐指数
1
解决办法
1799
查看次数

标签 统计

c ×1

generator ×1

lambda ×1

python ×1

readline ×1

yield ×1