3

私のアプリでは、すべてdatetime.__str__()を別の方法でデフォルトに戻す必要があります。メソッドを単純に継承して上書きしても大丈夫ですか?

class datetime(datetime):
    def __str__(self):
        return self.strftime('%d-%m-%y %H:%M:%S')

どんなアドバイスも素晴らしいでしょう。

4

2 に答える 2

3

一般に、組み込みモジュールで定義されているものとは異なる名前を新しいクラスに付けたいと思うでしょうが、そうです。正気を保つために、事前定義されたクラスと同じ名前を使用してクラス定義を作成しないでください。

私は少しだけやろうとしましたがclass datetime(datetime)、少なくともインタープリターでは機能しますが、Python の専門家なら誰でも笑ったり身震いしたりするでしょう。

于 2012-08-16T03:34:51.223 に答える
0

これは非常に哲学的な問題です:) 一般的に Python では、そのようなことは好きではありません。独自のクラスを使用する必要があり、デフォルトの datetime の代わりに常にそれを使用することを忘れないでください (同じ名前の場合、維持するのが困難です)。Ruby の連中は datetime に monkypatch を付けるだけでしたが、これはさらに悪いことだと思います。

私は個人的に別の名前でそれを継承することさえしません(それは私を混乱させるでしょう)が、任意のクラスの外でいくつかのショートカット関数を作成し、それを直接使用します。

于 2012-08-16T09:11:19.913 に答える