1
8
这个问题没有简单的答案。你的代码需要时间 "Pythonic" . 不要尝试在Python中重新创建Java习语。学习Python习语只需要一些时间。 看一看 Code Like a Pythonista: Idiomatic Python , Style Guide for Python Code 和 Python for Java Programmers (archived) . |
2
5
雅各布·哈伦曾经观察到,最好的蟒蛇风格如下 Tufte 拒绝装饰(尽管塔夫特的领域不是编程语言,而是信息的视觉显示):不要浪费“墨水”(像素)或“纸张”(空间)来仅仅装饰。 从这一原则可以看出:没有多余的圆括号,没有分号,注释和文档字符串中没有愚蠢的“ASCII框”,不同行上没有浪费的“对齐”空间,除非您特别需要双引号,否则不需要继续行,除非强制,没有只提醒读者语言规则的注释。(如果读者不知道你遇到麻烦的语言;-)等等。 我应该指出,在Python社区中,“python的凝灰岩精神”的一些后果比其他后果更具争议性。但语言确实很尊重“塔夫特精神”…
转向“更有争议”(但得到了巨蟒禅宗的认可)--
这并不可怕,但也不是最佳的:因为“返回”``离开',你可以保存嵌套:
更清晰的例子:
那个双嵌套的大块不整齐…考虑更平坦的风格:
顺便说一句,还有一个不是专门针对Python的风格——我的一个小毛病(在任何语言中,但是在Python Tufte的精神中,它支持我;-):
“如果不是……“是”
扭曲的
!把两半换掉
|
4
1
|
5
0
“一切都是一个类”是一个Java习语,它并不是一个Python熟语。(几乎)在Python中,所有的东西都可以是一个类,如果这对您更合适的话,那么就使用它,但是Python不需要这样的东西。Python不是一种纯面向对象的语言,在我(有限)的经验中,把它牢记在心是件好事。 |
6
0
语法只是冰山一角。Java程序员应该知道许多不同的语言构造,例如Python不需要使用接口。 Creating an interface and swappable implementations in python - Stack Overflow 另一个真正有用的习语是,在Python中,任何东西都可以转换为具有直观意义的布尔值。例如,要检查空数组,只需
第一个条件相当于Java的
这是巨蟒的天赐之物。它不仅更简洁,而且避免了Java陷阱,许多人不一致地检查这两种情况。结果避免了无数的NullPointerException。 |