Jar*_*red 81 python accessibility blindness blind
我是一个完全盲目的程序员,想学习Python.不幸的是,代码块用不同的缩进级别表示的事实是一个主要的障碍.我想知道是否有任何可用的工具允许我使用大括号或其他代码块分隔符编写代码,然后将该格式转换为Python解释器可以使用的正确缩进表示形式?
Rya*_*yan 56
有一个解决你的问题,与python本身一起分发.pindent.py,它位于Windows安装的Tools\Scripts目录中(我的路径是C:\ Python25\Tools\Scripts),如果你在Linux上运行,看起来你已经从svn.python.org获取了它或OSX.
它在块关闭时添加注释,或者在放入注释时可以正确缩进代码.这是pindent通过命令输出的代码示例:
pindent.py -c myfile.py
def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
# end if
else:
print 'oops!'
# end if
# end def foobar
Run Code Online (Sandbox Code Playgroud)
原件myfile.py是:
def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
else:
print 'oops!'
Run Code Online (Sandbox Code Playgroud)
您还可以使用pindent.py -r基于注释插入正确的缩进(有关详细信息,请阅读pindent.py的标题),这应该允许您在python中编码而不必担心缩进.
我有兴趣了解您最终使用的解决方案,如果您需要任何进一步的帮助,请对此帖发表评论,我会尽力提供帮助.
Mez*_*Mez 11
我个人怀疑目前是否存在,因为很多Python afficionados都喜欢这样的事实,即Python就是这样,空白分隔.
然而,我从未真正将其视为可访问性问题.也许这是向Python提出错误报告的东西?
我假设您在这里使用屏幕阅读器输出?这些标签看起来对你来说是"看不见的"吗?使用盲文输出,它可能更容易阅读,但我可以理解这可能是多么令人困惑.
事实上,这对我来说非常有趣.我希望我知道足够能够编写一个能够为你做这个的应用程序.
我认为这肯定是我将在bug报告中提出的,除非你自己已经或者想要这样做.
编辑:另外,正如John Millikin所指出的还有PyBraces这对你来说可能是一个可行的解决方案,并且可能会根据你的编码技巧被黑客攻击,这正是你所需要的(我希望如果是这样的话) ,你把它发布给像你这样的人使用)
编辑2:我刚刚向python bug跟踪器报告了这个问题
所有这些“不,你不能”类型的答案真的很烦人。当然可以。
这是一个 hack,但你可以做到。
http://timhatch.com/projects/pybraces/
在将大括号交给解释器之前,使用自定义编码将大括号转换为缩进块。
顺便说一句,作为 python 的新手 - 我不接受甚至不允许的理由括号/通用块分隔符背后的推理......除了 python 开发人员的偏好之外。如果您正在对代码进行一些自动处理或在不了解空格重要性的编辑器中工作,那么大括号至少不会被意外吃掉。如果您自动生成代码,那么不必跟踪缩进级别会很方便。如果你想使用 python 来做一个 perl 风格的单行代码,你自然会陷入困境。不说别的,只是作为一个保障。如果你的 1000 行 python 程序的所有选项卡都被吃掉了怎么办?您要逐行找出缩进应该在哪里吗?
询问它总是会得到半开玩笑的回答,比如“只需执行 'from __ future __ import braces'”、“正确配置你的 IDE”、“无论如何,它更好,所以要习惯它”……
我明白他们的观点,但是嘿,如果我愿意,我可以在每一行后面加一个分号。所以我不明白为什么每个人都对牙套如此执着。如果您需要语言强制您正确缩进,那么您一开始就没有做对。
只是我的 2c - 无论如何我都会使用牙套。