進捗
3/12 13:30~15:30 p.293~p.295
このサイトをjupyternotebookに書いて__hash__(self)を学習した。
def hash(self):
return print('The hash is',hash(self.name,self.age))
#hashメソッドは整数を返すようにとメッセージが出る。
def hash(self):
return 'The hash is' + hash((self.name,self.age))
#intとstrは連結できないとメッセージが出る。
#hash関数だけでなくreturn hashと書くこと。hash関数の引数は一つで今回はタプルにしてある。
ハッシュ値はこのサイトを読んで理解した。公式ドキュメントに書いてあるようにhash関数の引数は一つ。タプルを入れるのは一つとみなされて大丈夫。
__call__(self[,args...])についてこのサイトやこちらのサイトをjupyternotebookに書いて学習した。
__call__メソッドの引数は複数であってもselfだけであっても良い。公式ドキュメントにも書いてあるようにインスタンスをまるで関数のように使い、インスタンス(引数)の形で呼び出す。print関数で囲っても良いが、__call__メソッドに引数がない形、つまりprint(インスタンス())で呼び出すと、__call__メソッド内のブロックだけでなくnoneと表示される。
self.a = Aに対し__dict__をつけてみると{'a':'A'}と表示される。