在我的应用中,我希望我的所有datetime.__str__()
以不同的方式返回默认值。简单地继承和覆盖方法是否可以?
class datetime(datetime):
def __str__(self):
return self.strftime('%d-%m-%y %H:%M:%S')
任何建议都会很棒。
答案 0 :(得分:3)
通常,您需要将新类命名为内置模块中定义的类以外的类,但是,这就是您的操作方法。为了您的理智,请不要使用与预定义类相同的名称创建类定义。
我只是尝试做class datetime(datetime)
位,它确实有效,至少在解释器中,但任何python专家都可能会笑或不寒而栗。
答案 1 :(得分:0)
这是一个非常哲学的问题:)通常在Python中我们不喜欢这样的东西。 您现在必须使用自己的类并始终记住使用它而不是默认的datetime(如果它们具有相同的名称,则很难维护)。 Ruby家伙只会monekypatch datetime,我认为更糟糕。
我个人甚至不会用不同的名称继承它(这也会让我感到困惑),但在任何类之外制作一些快捷功能并直接使用它。