diveintopython有些例子实在是违背python的原则

diveintopython有些例子实在是违背python的原则

可读性超强是python的一个重要原则

但是像这样的代码:
methodList = [method for method in dir(object) if callable(getattr(object, method))]

--- 4.1

return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

--- 2.1

可读性实在不敢恭维。
这样可以提高性能。速度比较快。如果你学过类似perl一样的语言,应该觉得很好懂
你看到的正是python中的list comprehension的用例,在python中非常常见。属于pythonic的东西,反而是python的特色。
或者说是从Haskell学来的特色
lz恐怕是没看过配合lambda的map,filter之类的代码
这代码给鬼看的?
有些所谓的高手,炫耀自己的花招而已。
只能一个人维护的代码就是垃圾。


QUOTE:
原帖由 zhaogequ 于 2008-3-3 18:08 发表
这代码给鬼看的?
有些所谓的高手,炫耀自己的花招而已。
只能一个人维护的代码就是垃圾。

methodList = [method for method in dir(object) if callable(getattr(object, method))]

我觉得,这个无论如何也比

methodList=[]

for method in dir(object):
     if callable(getattr(object, method)):
        methodList.append(method)


更清晰吧
这是标准的python的语法,如果看不懂,可能python并不适合你。
开始偶也不习惯 要转弯 看多了就有好了 也觉得效率挺高的
python 中效率最高的应该是 map, filter  之类的函数,其次就是list 操作   例如,[method for method in dir(object) if callable(getattr(object, method))]
看着看着也就习惯了...