我有成千上万行的python代码有python2.7 +样式字符串格式化(例如{} s中没有索引)
"{} {}".format('foo', 'bar')
Run Code Online (Sandbox Code Playgroud)
我需要在python2.6下运行此代码,python2.6 需要索引.
我想知道是否有人知道一个无痛的方式允许python2.6运行此代码.如果有一个"来自__future__ import blah"解决问题,那就太棒了.我没有看到一个.这些方面的东西将是我的第一选择.
一个遥远的第二个是一些脚本可以自动化添加索引的过程,至少在明显的情况下:
"{0} {1}".format('foo', 'bar')
Run Code Online (Sandbox Code Playgroud) 除非我遗漏了某些内容,否则Sphinx automodule将仅记录模块的成员,而不记录该模块中定义的类的属性.
有没有办法自动获得的行为automodule,并autoclass结合以这样的方式,我可以自动获得一个模块成员的文件和该模块中找到的任何类的属性?
我意识到我可以编写所有这些脚本,但它会很快变得非常混乱和冗长.如果有人有一个整洁,优雅的方式这样做,我也很高兴听到这一点.
我正在考虑修改某些第三方Python代码的行为.有许多类派生自基类,为了轻松实现我的目标,最简单的方法就是覆盖用于派生所有其他类的基类.有没有一个简单的方法来做到这一点,而无需触及任何第三方代码?如果我没有清楚地解释这个:
class Base(object):
'...'
class One(Base)
'...'
class Two(Base)
'...'
Run Code Online (Sandbox Code Playgroud)
...我希望在Base 不实际修改上述代码的情况下进行修改.也许是这样的:
# ...code to modify Base somehow...
import third_party_code
# ...my own code
Run Code Online (Sandbox Code Playgroud)
Python可能有一些可爱的内置解决方案来解决这个问题,但我还没有意识到这一点.
我希望post_mortem()在遇到异常时让我的调试器运行,而不必修改我正在处理的源.我看到很多例子涉及在try/except块中包装代码,但我想让它始终运行,无论我在做什么.
我研究了一个python包装器脚本,但是它变得丑陋且几乎无法使用.
我使用pudb,它与pdb的API等价,所以pdb特定的答案很好.我在我的编辑器(vim)中运行代码,并希望在遇到异常时让pm出现.