修补python内置对象

forbiddenfruit的Python项目详细描述


[![生成状态](https://travis-ci.org/clarete/forbiddenfruit.png?branch=master)](https://travis-ci.org/clarete/forbiddenfruit

#禁果

啊![禁果](logo.png)

这个项目的目的是帮助你在写测试的时候到达天堂,但是 如果用在生产代码上,可能会把你引向地狱。

它基本上允许您修补在c到 Python.就像这样:

`python >>> from forbiddenfruit import curse >>> def words_of_wisdom(self): ...     return self * "blah " >>> curse(int, "words_of_wisdom", words_of_wisdom) >>> assert (2).words_of_wisdom() == "blah blah " `

砰!就这样,你的int类现在有了智慧的words方法。做 您想将classmethod添加到内置类吗?没问题,就这样做:

`python >>> from forbiddenfruit import curse >>> def hello(self): ...     return "blah" >>> curse(str, "hello", classmethod(hello)) >>> assert str.hello() == "blah" `

###扭转诅咒

如果您想将对象从诅咒中解放出来,可以使用reverse() 功能。就像这样:

`python >>> from forbiddenfruit import curse, reverse >>> curse(str, "test", "blah") >>> assert 'test' in dir(str) >>> # Time to reverse the curse >>> reverse(str, "test") >>> assert 'test' not in dir(str) `

##兼容性

到目前为止,我测试过的所有cpython版本上都运行了禁果,其中包括 版本2.5、2.6、2.7、3.2和3.3。因为禁果从根本上来说 依赖于c api,这个库不能在其他python上工作 实现,如Jython、Pypy等

我可能会在将来添加对pypy的支持,但我不太可能这样做 为Jython。但我可以很高兴地接受他们的补丁。

##许可证

许可证(GPLv3)

版权所有(c)2013 Lincoln Clarete<;lincoln@comum.org>;

此程序是免费软件:您可以重新分发和/或修改 根据由 自由软件基金会,或者许可证的第3版,或者 (由您选择)任何更高版本。

这个程序的发布是希望它能有用, 但没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。见 GNU通用公共许可证了解更多详细信息。

你应该收到GNU通用公共许可证的副本 还有这个节目。如果没有,请参见<;http://www.gnu.org/licenses/>;。

###徽标由

金伯利·钱德勒,来自名词项目

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java读取SSLSocket的最快或最佳方式   JavaGuice向类构造函数注入对象   java类不是抽象的,并且不会覆盖OnClickListener中的抽象方法onClick(视图)   java OpenGL 1.1更改颜色更改以前的颜色?   c#将Java/Android连接到。网络服务   java在节点上生成AES密钥   java Liferay与MarkLogic XDBC数据库集成   java使用静态初始化块来提高性能   java如何在需要不同参数的另一个方法中使用同一类中的方法   音频Java多种声音   Java显式引用转换   java Intellij,如何在maven项目中导入模块   java在什么条件下调用ELResolver的setValue方法?   java在beanshell中计算代码字符串并获取beanshell解释器返回的值   javascript将音频文件上载到服务器并从服务器响应设置图像   编码风格清理java代码,多个else if语句   java是否需要使此变量可变?   java线程未更新GlassPane上的进度条   java关闭调试模式@Vaadin Spring启动应用程序