私はPythonにはまったく新しく、クラスは2つの属性(1つは数値、もう1つはdatetimeオブジェクト)を格納するクラスを作成しようとしています。私も好きですが、date
をdatetimeとして保存している間は、 "dd.mm.yyyy"のような文字列を使用して初期化して出力します。 self.date
でPythonでのゲッターとセッター
class MyClass:
number = None
date = None
def __init__(self, params):
self.number = params["number"]
self.date = params["date"]
@property
def date(self):
return datetime.datetime.strftime(self.date, '%d.%m.%Y')
@date.setter
def date(self, value):
self.date = datetime.datetime.strptime(value, '%d.%m.%Y')
def get_vars(self):
return vars(self)
しかし、実行時に@property
ポイントと言う:だから私は行くExpected type 'datetime', got 'str' instead
。設定中に日付に変換されることを意図しているとき、文字列をどのように取得することができますか?なぜこうなった?混乱している。例えば
:
>>> MyClass({'number': 42, 'date': '28.12.2017'})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 8, in __init__
File "<string>", line 16, in date
File "<string>", line 16, in date
TypeError: strptime() argument 1 must be str, not datetime.datetime
*完全なトレースバック*と、あなたの 'MyClass'インスタンスを生成するコードを含めてください。私はこの特定の限定されたケースで*正確に何が起こったのでしょうか*を考え出すことができますが、トレースバックは将来の訪問者が同じ問題を抱えているかどうかをより簡単に見分けることができます。 –