python新手:一些惊喜

当我开始在Python编码时,这两件事使我感到惊讶.
1.我的代码与选项卡的组合不一致
空间.甚至线条看起来都是故意的,但事实并非如此.
2. Python需要将"自我"传递给所有实例方法
我错过了":"经常. :)

# 回答1


V4Vijayakumar写道:
即使是标准编辑器的闲置器也试图猜测预期,所以
对我来说从来都不是问题.尽管这些天我经常使用Pydev.
许多编辑通过
自动完成可能值得研究.
经过5年的Python滥用:-)仍在做
- -
mph
# 回答2


5月8日,2:06*am,v4vijayakumar
写道:
您必须不一致.
即使我曾经使用记事本,我也从未遇到过这样的问题.
谁使用方法?
尝试使用诸如seed7之类的东西,您必须在其中使用"然后"
"如果"和" do"与" while"和" end"在每个块中.也许你会的
开始欣赏重要的空格和":".
# 回答3


Mensanator写道:
谁使用方法?
你在开玩笑吗 ?
有什么选择?
尝试使用诸如seed7之类的东西,您必须在其中使用"然后"
"如果"和" do"与" while"和" end"在每个块中.也许你会的
开始欣赏重要的空格和":".
我看到了OP的重点.新线不能用作等效的
':'例如,您是否觉得很难阅读:
如果a == 3
做一点事()
如果a == 3:do_something()
可以肯定的是,编译器解析应该很容易.
伊夫. http://www.sollers.ca
# 回答4


5月8日,11:47页,Yves Dorfsman 你在开玩笑吗 ?
是的.
我看到了OP的重点.新线不能用作等效的
例如,您发现很难阅读:
如果a == 3
•½do_Something()
如果a == 3:do_something()
可以肯定的是,编译器解析应该很容易.
如果他们要拿起它,我不会抱怨.
我只是认为当
与其他系统相比.
# 回答5


En Fri,2008年5月9日01:47:49 -0300,Yves Dorfsman
escribió:
是的,可以做到,没有技术原因总是强迫
利用 ":".但是afaik保留":"是内部一致性的主要原因
(内部块总是以":"开头;顺便说一句,这更容易
编辑人员)和可读性(":"代表自己,有一个
意义)
- -
Gabriel Genellina
# 回答6


v4vijayakumar aécrit:
然后,您对代码编辑器有问题 - 而不是Python.
没有. Python要求该函数用作实例方法
实例作为第一个参数(以及用作classMethods的函数
该类是第一个参数).这是方法对象的责任
将适当的对象传递给函数.理性是它
允许在两个又有两个通用构建体上方构建方法(即:
功能和描述符协议) 而不是不必特别案例
他们.
然后,您的编辑不应缩进下一行.你要么未能
正确配置您的编辑器,否则已损坏.
# 回答7


Yves Dorfsman aécrit:
谁使用方法?

你在开玩笑吗 ?
很可能.
err ...功能? - )

# 回答8


Yves Dorfsman aécrit:
(剪)
从技术上讲,是的. Otho,":"可帮助编辑人员做适当的凹痕.
# 回答9


5月9日,下午1:48,Bruno Desthuilliers 42.desthuilli ...@werfeburburo.invalidwrote:
然后,您对代码编辑器有问题 - 而不是Python.
编辑不会错. :)
我认为应该有一些方法可以说Python编译器,请考虑
标签和两个空白空间相等,当tab space = 2时.
# 回答10


Gabriel Genellina写道:
是的,可以做到,没有技术原因总是强迫
利用 ":".但是afaik保留":"是内部一致性的主要原因
(内部块总是以":"开头;顺便说一句,这更容易
编辑人员)和可读性(":"代表自己,有一个
意义)
易读性?
但是人们可以对卷曲括号提出相同的论点,我们似乎是
没有他们就可以了!
我已经习惯了在python缩进的力量,以至于我保留
忘记结肠,这变得越来越糟,因为我做更多的python,而不是
更好的.也许我会给自己写一个"预补偿器",添加了结肠
编译器需要它们:-)
伊夫. http://www.sollers.ca
# 回答11


伊夫·多夫斯曼(Yves Dorfsman)在星期五,2008-05-09,15:08 +0000上写道:
是的,可以做到,没有技术原因总是强迫
利用 ":".但是afaik保留":"是内部一致性的主要原因
(内部块总是以":"开头;顺便说一句,这更容易
编辑人员)和可读性(":"代表自己,有一个
意义)

易读性?
但是人们可以对卷曲括号提出相同的论点,我们似乎是
没有他们就可以了!
我已经习惯了在python缩进的力量,以至于我保留
忘记结肠,这变得越来越糟,因为我做更多的python,而不是
更好的.也许我会给自己写一个"预补偿器",添加了结肠
编译器需要它们:-)
伊夫. http://www.sollers.ca
-http://mail.python.org/mailman/listinfo/python-list
您是否考虑过以下内容:
if(x == 4和(y in)
[len(x)for x in
如果x ** 2 23]
或y <2)和z.strip().endswith('z')和
remove_first(w))
stact_list(q,r)
拒绝(x)
正确的线上的结肠将有助于可读性.
是的,我知道我一开始就变得非常丑陋,有一些方法可以
在没有结肠的情况下改进它,但仍然是因为它可能是
删除并不一定意味着应该.
干杯,
悬崖

# 回答12


En Fri,2008年5月9日,10:37:30 -0300,v4vijayakumar 编辑不会错. :)
我认为应该有某种方式 说Python编译器,请考虑
当标签空间= 2时,标签和两个空白空间相等.
它已经考虑了TAB = 8个空格,并且使用-tt调用时,它会拒绝混合选项卡+空格. (我希望python被拒绝 *用于缩进的任何 *标签...)
您的python安装上有一个工具" redindent.py",还有一个缩进的检查器" tabnanny.py"(标准库中的一个).
- -
Gabriel Genellina
# 回答13


Gabriel Genellina写道:编辑不会错. :)我认为应该有一些方法可以说Python编译器,当tab space = 2时,对considertab和两个空白空间相等.

它已经考虑了TAB = 8个空格,并且使用-tt调用时,它会拒绝混合选项卡+空格. (我希望python被拒绝 *用于缩进的任何 *标签...)
您的python安装上有一个工具" redindent.py",还有一个缩进的检查器" tabnanny.py"(标准库中的一个).
这就是我喜欢python的原因之一:-)
仍然太多的人不知道您必须将标签设置为8
您的编辑.除8个标签以外的其他任何东西都会在某个时候
混淆某人.
不要将凹痕与选项卡设置混淆.
许多编辑也无济于事.例如,Pydev有一个设置
对于标签,但用于凹痕.很幸运(我想)
Pydev可以选择说您只需要空间. (看一眼
Pydev的主要偏好.)
到目前为止,我只看到一个理解的编辑
标签和凹痕,那就是emacs.
- -
kees

# 回答14


基斯·巴克(Kees Bakker)写道:
哦,好吧...在.vimrc:
AutoCMD Filetype Python Set tabstop = 8
AutoCMD Filetype Python SET SOFTTABSTOP = 4
AutoCMD Filetype Python SET ExpandTab
# 回答15


kees bakker 大多数VI克隆(和原始VI)也这样做! :-)
例如.在我使用的克隆中,有独立的设置
tabstop和shiftwidth.另外,您可以告诉编辑器更改
按照您的意愿到空格(或不)的标签.
- -
克里斯·格林
# 回答16


5月8日,2:06*PM,v4vijayakumar
写道:
问题是在标签中不是python中,没有关于多少惯例
应当处理空格,python(默认情况下)假定一个标签为
等于8个空间,但并非每个人都认为相同,某些代码编辑器
可能将其视为4个空间或2个空间.在大多数面向Python
代码编辑器,一个选项卡可以自动替换为四个空间.
不,python不需要自我传递给所有实例方法,
Python将类的"当前实例"传递给第一个参数
班级内部的功能,第一个参数可以命名
任何东西,尽管传统上被称为自我.其他
编程语言,该当前实例被隐式传递(我
在VB中,这是C/C ++).
虽然不在你的笑脸. :)

标签: python

添加新评论