Python拉皮条/monkeypatching

2024-09-29 22:33:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一件简单的事:猴子补丁datetime。我不能完全这么做,因为datetime是一个C类。在

所以我写了以下代码:


from datetime import datetime as _datetime

class datetime(_datetime): def withTimeAtMidnight(self): return self.replace(hour=0, minute=0, second=0, microsecond=0)

这是在一个名为日期时间.py在一个我叫皮条客的包裹里。在

从我收到的错误信息来看:

^{pr2}$

我假设我不能让一个名为datetime的模块从另一个名为datetime的模块导入任何内容。在

我应该如何继续保持我的模块和类名为datetime?在


Tags: 模块代码fromimportselfdatetimereturndef
1条回答
网友
1楼 · 发布于 2024-09-29 22:33:16

将模块放入一个包中,例如,your_lib.datetime。不应将datetime名称用于顶层模块。在

如果您使用的是Python 2,请在顶部添加:

from __future__ import absolute_import

禁止包内隐含的相对导入。如果目录结构是:

^{pr2}$

以下命令起作用:

$ python -c 'import your_lib.datetime'

其中datetime.py是:

from __future__ import absolute_import
from datetime import timedelta

相关问题 更多 >

    热门问题