我有一个cheese对象列表.Cheese有一个方法,用db和whatnot做一堆东西,叫做out_of_stock().
所以:
[cheese.out_of_stock() for cheese in cheeses]
Run Code Online (Sandbox Code Playgroud)
对我来说这感觉很草率.就像我正在为一堆副作用(零库存)做某事(创建一个列表).
我是愚蠢的吗?这种方法是主观的吗?
就个人而言,我会这样做
for cheese in cheeses:
cheese.out_of_stock()
Run Code Online (Sandbox Code Playgroud)
这对我来说更加明确.这是另一条线,但我怀疑另一个程序员阅读该代码会理解它,而列表理解版本可能会有点混乱.另外,我可以想象其他人可能会在以后出现(不知道out_of_stock没有返回值)并尝试稍后使用该列表.
不过,我猜它没有任何问题.归根结底,它归结为谁将在以后阅读该代码(你自己或他人),以及他们是否会知道发生了什么.
编辑:此外,你正在使用一个可爱的函数编程构造从Haskell采取做令人讨厌的有状态的事情......
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |