是否可以从模块中删除方法?

Chi*_*raj 5 python python-2.7

我可以在python中从ready模块中删除方法吗?最近我试图在基于浏览器的交易平台上编写一个python代码,在这里他们允许你导入python'time'包,但是time包没有sleep()方法.虽然我试图导入睡眠方法,但它给了我属性错误.在询问该平台的技术支持人员时,我知道他们不支持sleep()方法.我只是想知道我们怎么能这样做?它只是从包中删除方法?还是有更好的方法吗?

pef*_*efu 6

可以在运行时从名称空间中删除方法(函数).这称为猴子修补.交互式会话中的示例:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> time.sleep(2)
>>> del time.sleep
>>> time.sleep(2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'sleep'
Run Code Online (Sandbox Code Playgroud)

但回到原来的问题:我相信在您使用的平台上,他们可能已经用自定义版本替换了几个标准库模块(包括时间模块).所以你应该问他们如何实现你想要的延迟,而不必诉诸于忙碌的等待.