如果你谷歌的“pythonic”,你会发现主要是the same three examples。这里有很多关于stackoverflow的问题,要求如何在pythonoic的方式下完成这个和那个,所以一些不错的pythonic代码示例的集合将会很好!你会认为什么做法是“pythonic”?
3
A
回答
5
我在tag description写道:
Pythonic是最地道的Python代码的说明。这不仅意味着代码对于其他程序员来说很容易理解,而且它也是使用Python最有效的方式。
2
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
0
“Python化” 只是意味着以下常见的Python成语。
只需按照禅宗的Python:
- 美丽的比丑好。
- 显式优于隐式。
- 简单胜过复杂。
- 复杂比复杂好。
- Flat比嵌套更好。
- 稀疏比密集好。
- 可读性计数。
- 特殊情况不足以破坏规则。
- 虽然实用性胜过纯度。
- 错误不应该默默通过。
- 除非明确沉默。
- 面对歧义,拒绝猜测的诱惑。
- 应该有一个 - 最好只有一个 - 明显的方法来做到这一点。
- 虽然这种方式可能并不明显,除非你是荷兰人。
- 现在总比从未好。
- 虽然从来没有比现在更好。
- 如果执行很难解释,这是一个坏主意。
- 如果实施很容易解释,这可能是一个好主意。
- 命名空间是一个重要的想法 - 让我们做更多的这些!
2
的问题问的Python的代码的集合,所以我会添加一些人,我喜欢,因为他们使用的是强大的Python的运营商*
和**
:
换位使用拆包经营者*
解包运算符是一个非常强大的工具,可以让我们“解包”一个列表。我不知道其他语言的任何等价物。
此操作可以有非常有趣和有用的应用程序:再次
a = [[1,2],[3,4]]
a_transpose = zip(*a)
Dictionnary级联使用的元组拆包经营者**
,我不知道在其他语言中的任何等价物。和上面一样,我们可以使用这个操作符来处理许多事情,包括字典串联:
a = {1:2,2:2}
b = {2:37,3:42}
a = dict(a,**b) # a is now {1:2,2:37,3:42}
相关问题
- 1. 为什么csv.reader不是pythonic?
- 2. 你无法用Angular.js做什么,你可以用jQuery做什么
- 3. 可搜索表格 - 你会做什么?
- 4. 为什么Xcode会认为实例方法是类方法?
- 5. 认为是好的做法?
- 6. 这是为什么认为是不好的做法?还是它? (ASP.Net)
- 7. 为什么在OOP中你会做所有事物?
- 8. 你会为后端Web应用程序做什么:Flex,GWT,JQuery?
- 9. 当你等待代码编译时,你通常会做什么
- 10. 当你突然投入大型项目时,你会做什么?
- 11. 如果你重新实现twitter,你会做什么不同?
- 12. 将数组切片为连续块的pythonic方法是什么?
- 13. 什么是整洁,更pythonic方式来做以下枚举?
- 14. 什么是“如果可能,做到这一点”的pythonic方式?
- 15. 你能用System.DirectoryServices.Protocols.ExtendedRequest做什么?
- 16. 你用Object.clone()做了什么?
- 17. clog()的做法是什么?
- 18. 什么是LINQ'ish的做法
- 19. 这是线程代码做我认为是什么?
- 20. 为什么这个git rebase认为没有什么可做的?
- 21. 锁定可变对象 - 为什么它被认为是不好的做法?
- 22. 你怎么做到这一点,当你按下一个键会发生什么
- 23. 你会为内核模块写什么?
- 24. 为什么你会使用string.toString()?
- 25. 你认为什么是ASP.Net技能的当前基准?
- 26. 你认为什么是最滥用的设计模式?
- 27. 如果你不用Java进行克隆,那么你做什么,你叫什么?
- 28. 什么是最好的做法,当你需要做昂贵的检索
- 29. 为什么你会捕获Throwable并且什么也不做,但是打印堆栈跟踪?
- 30. mvc2确认密码字段的最佳做法是什么?
投票结束:这里没有真正的问题。 – 2010-10-15 13:57:34
http://ideone.com/kMEuL – 2010-10-15 14:07:07
如果它是可读**和**产生预期的输出,它是Pythonic。 – tzot 2010-10-15 19:14:04