저는 파이썬에 완전히 익숙하지 않습니다. 두 가지 속성 만 저장하는 클래스를 작성하려고합니다. 하나는 숫자이고 다른 하나는 datetime 객체입니다. 비록 내가 좋아할지라도, date
을 datetime으로 저장하는 동안 "dd.mm.yyyy"와 같은 문자열을 사용하여 초기화하고 출력 할 수 있습니다. self.date
에서파이썬의 게터와 세터
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
* Full traceback *과 'MyClass' 인스턴스를 생성하는 코드를 포함하십시오. 이 특정한, 제한된 경우 * 정확히 무슨 일이 있었음에 틀림 없습니까? * 역 추적은 미래의 방문자가 동일한 문제가 있는지 쉽게 알 수 있도록합니다. –