まず最初に、私はPythonの初心者で、静的型付けされたすべての言語であるc/C++/c#の基本的な知識を持っています。だから次は、Pythonで行うことができますか?Pythonの静的型付きコンストラクタ?
変数birthdayをdatetimeにします。だから私はインスタンス化するたびに、私はパラメータでdatetimeを渡す必要があります。
さらに下BIRTHDAY = datetime.date(1989, 10, 9)
NIELSON = Person('Nielson', 'Jansen', 'Male', BIRTHDAY)
次これは私にエラーを与えるとして、私はインスタンス化
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
: TypeError例外:整数が必要です(型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
Pythonには静的型チェックがありません。あなたは 'datetime.date'に間違った型の引数を渡しているので発生している*ランタイム*型チェックを見ています... –