Python 了解作者分配datetime的选择。datetime=self
我试图理解下面的代码,特别是第5行,注释掉的那一行,我自己也注释掉了Python 了解作者分配datetime的选择。datetime=self,python,datetime,self,Python,Datetime,Self,我试图理解下面的代码,特别是第5行,注释掉的那一行,我自己也注释掉了 >>> class PartyTime(): ... def __call__(self,*args): ... imp.reload(datetime) ... value = datetime.datetime(*args) ... #datetime.datetime = self ...
>>> class PartyTime():
... def __call__(self,*args):
... imp.reload(datetime)
... value = datetime.datetime(*args)
... #datetime.datetime = self
... return value
... etc
>>> p = PartyTime()
>>> print p(2013,2,14)
2013-02-14 00:00:00
如您所见,第5行注释掉了datetime.datetime=self,但函数的行为正常。作者为什么要写这句话?你可以看到整篇文章,大概已经写了一半了。这项自救任务需要做什么 这是所谓的猴子修补术的一个例子。注释掉的行在导入的模块datetime中进行了更改 执行p2013,2,14后,如果不注释掉该行,则代码
datetime.datetime()
不执行它通常执行的操作,但在p实例上执行_call
这通常是一种不好的做法,所以我不会将其称为编写好软件的作者选择,而只是一个例子。作者本人将其描述为一个愚蠢的想法:
因为Python中的所有内容本质上都是绑定到对象的名称,所以我们可以做这样愚蠢但有趣的事情
谢谢我知道这是个糟糕的代码,只是想知道它会有什么不同。