우선, 저는 파이썬에 처음 접했고 모든 정적 유형 언어 인 c/C++/C#에 대한 기본적인 이해를했습니다. 그럼 다음은 파이썬으로 할 수 있습니까?파이썬 정적으로 생성자 생성자?
변수 birthday를 datetime으로 지정합니다. 따라서 인스턴스화 할 때마다 매개 변수를 사용하여 datetime을 전달해야합니다. 형식 오류 :
import datetime
class Person:
"""class representing a person."""
def __init__(self, name, sirname, gender, birthday):
self.name = name
self.sirname = sirname
self.gender = gender
self.birthday = datetime.date(birthday)
def getage(self):
"""returns age"""
today = datetime.date.today()
return today.year - self.birthday.year
은 또한 아래로 난이 나에게 오류 제공
BIRTHDAY = datetime.date(1989, 10, 9)
NIELSON = Person('Nielson', 'Jansen', 'Male', BIRTHDAY)
를 다음과 같이 인스턴스화 정수가 필요하다
내 인스턴스화가 잘못 (유형 datetime.date있어) 아니면 내가 파이썬으로 제 머리에서 최대한 빨리 벗어나야합니까?
self.birthday = datetime.date(birthday)
(. 내가이 인스턴스화의 실수를하면 getage 방법은 항상 대신 임의 무언가의 datetime.date 제시되도록 이것이 무엇을 하시겠습니까 왜)
PS :도 , 나의 용어가 정확하지 않다면, 저를 바로 잡으려고 주저하지 마십시오. :)
'datetime'을 이미 전달했다면, 왜 그것을'datetime'으로 변환하려고합니까? [the docs] (https://docs.python.org/3/library/datetime.html#datetime.datetime)를 참조하십시오. 단일 인수를 전달하면 1 년이 될 것으로 예상됩니다. – jonrsharpe
파이썬에는 정적 유형 검사가 없습니다. 당신은'datetime.date'에 잘못된 타입의 인수를 넘기고 있기 때문에 발생하는 * runtime * type-checking을보고 있습니다 ... –