首页 > TAG信息列表 > monkeypatching

猴子修补“ datetime”产生奇怪的结果

我正在尝试使我的库之一与Python 2.6兼容.它使用2.7中添加的datetime.timedelta.total_seconds方法,因此要使其与2.6一起使用,我想像这样将其修补到timedelta中: import datetime if not hasattr(datetime.timedelta, 'total_seconds'): class timedelta(datetime.timedelta)

可能使用装饰器猴子修补全局变量吗?

猴子可以修补全局变量吗? 就我而言,我将全局变量设置为整个文件的默认记录器,但是对于某些特殊功能,我将使用装饰器来更改记录器并添加一些其他信息. 如以下代码: libmonkey.py logger = logging.getLogger(__name__) @change_logger('import') def do_some(): logger.debug('T

了解gevent的python导入

这对我来说失败了: import gevent gevent.monkey.patch_all() 这有效: from gevent import monkey monkey.patch_all() 我尝试通过访问gevent.monkey做任何错误 另外,我对该代码段感到困惑: import gevent as ge from gevent import monkey ge.monkey.patch_all() 是什么使ge.mo

javascript-MonkeyPatching:PrimeFaces小部件扩展/覆盖

我目前正在使用(工作正常) PrimeFaces.widget.OverlayPanel.prototype._old_init = PrimeFaces.widget.OverlayPanel.prototype.init; PrimeFaces.widget.OverlayPanel.prototype.init = function(cfg) { this._old_init(cfg); this.align(); } 但我想使用更具可读性和

扩展类实例

MyClass在module.py中定义.我们无法对其进行修改.但是我们知道类定义看起来像这样: class MyClass: def method(self, msg): print 'from method:', msg 我通过导入模块开始我的脚本,然后声明一个对象的实例: import module foo = module.MyClass() 然后,我编写

python-是否可以在Django项目中重新定义反向?

我有一些自定义逻辑,即使URL对于第三方应用程序,URL每次反向都需要执行.我的项目是一个多租户Web应用程序,并且根据URL标识了租户.没有一个有效的URL不包含租户标识符. 我已经有了逆向包装函数,但是现在我需要一种方法来告诉每个已安装的应用程序使用它.反向包装器使用局部线程将标

javascript – “猴子补丁”真的那么糟糕吗?

像Ruby和JavaScript这样的语言有开放类,允许你修改偶数核心类的接口,如数字,字符串,数组等.显然,这样做可能会使熟悉API的其他人感到困惑,但是否则有充分的理由避免使用它们. ,假设您正在添加到界面而不是更改现有行为? 例如,将一个Array.map实现添加到未实现ECMAScript第5版的Web浏

Python:Monkeypatching一个对象的方法

我正在通过请求的Session类在python中访问API.我正在制作GET&使用requests.Session()调用POST方法. 在每次调用(GET / POST)失败时,我想通知另一个进程.我可以通过创建如下的实用程序方法来完成此操作: s = request.Session() def post(): try: s.post(URL,data,header

python – eventlet.greenthread.sleep在猴子修补环境中的VS time.sleep

我们正在运行一个服务器上的事件绿线程猴子修补一切. 我需要定期检查实现wait循环,我想把睡眠放在里面. 之间有什么区别: eventlet.greenthread.sleep(1) AND time.sleep(1) 在猴子修补的环境?我想知道猴子补丁是否处理time.sleep解决方法:它们在猴子修补的环境中是相同的. eventl

你在哪里猴子修补Django用户模型?

我想从Django中修改用户模型. 我的代码: from django.db import models from django.contrib.auth.models import User User.add_to_class('secret_question', models.CharField(max_length="100")) User.add_to_class('answer', models.CharField(max_leng

python – py2app规定

py2app documentation提到了处方,在主python脚本之前由__boot__.py运行.我找不到一种方法来轻松指定setup.py文件或构建过程中的任何规定. 然而,我确实设法’hack’__boot__.py手动并在我的主_run(main_script)之前添加另一个_run(prescript)命令,它似乎工作正常.然而,使用标准的py

Python中的Monkey修补会影响直接导入吗?

如果我猴子补丁模块: # mokeypatch.py import other_module def replacement(*args, **kwargs): pass other_module.some_func = replacement 这会影响直接导入some_func的模块,还是会依赖于导入的顺序?如果第三个模块是这样的: # third_module.py from other_module import

python – 如何包装(猴子补丁)@classmethod

我想修补一个单一的类方法,保持旧的功能.考虑一下我的代码来获取想法.这是我的代码(非常合成的例子). #!/usr/bin/env python class A: @classmethod def foo(kls, param): print 'A.foo called, param is ' + param def bar(self, param): print 'A.bar called,

如何在Python中对猴子补丁进行单元测试

我有一个像这样的实用方法 def my_patch_method(self): pass def patch_my_lib(): from mylib import MyClass MyClass.target_method = my_patch_method return MyClass() 此测试失败: self.assertEqual(my_patch_method, patch_my_lib().target_method) 虽然

Python猴子补丁私有功能

我有一个带有函数的模块(称之为a()),它调用在同一模块中定义的另一个函数(称之为__b()). __b()是一个通过urllib2与网站对话并获取一些数据的函数.现在我正在尝试测试(),但当然不希望我的单元测试与公共互联网对话.因此,我在想是否可以使用返回固定数据的函数来修补__b(),然后我可