2019-03-01から1ヶ月間の記事一覧

進捗

3/29 14:50~17:10 p.329~p.333 dir("abc")を調べると特殊メソッドがアトリビュートにでてくる。クラスのインスタンスだけに付くのかと思ったがそうではないらしい。クラスもstrも同じオブジェクトだから共通なのかと考えるのは極端か? getattr関数を使う際…

進捗

3/28 15:30~16:20 p.325~p.329 クラスのメソッドを代入して別の名前に変える方法について。メソッド名から左辺と右辺共にかっこをとって、一度アトリビュートの様に使う。そして代入した後呼び出すときはメソッドとしてかっこをつける。 pythonのオブジェク…

進捗

3/27 15:30~18:00 p.294の復習 テキストのコードを変えてlist関数をスーパークラスとして__setitem__を特殊メソッドで持つIntListというクラスを書いた。そこで気づいたこと。 def __setitem__(self,key,value): super(IntList,self).__setitem__(key,value)…

進捗

3/26 17:00~19:00 lambdaの復習 sortedは関数で反復可能なものを対象とする。sortはメソッドでリストオブジェクトに付く。両者ともキーに並び替えの基準を与えることができる。キーにlambda式を入れることもできる。

進捗

3/19 13:30~15:30 p.319~p.325 スコープの続き。インスタンスから見て、クラスの中の変数はアトリビュートをつけることで参照することができる。クラスの外でインスタンスがアトリビュートをつけて新しい数値を代入するとクラス内の変数は隠れてしまい参照で…

進捗

3/16 16:00~18:15 p.311~p.319 名前空間のようにオブジェクトに名前をつける際に対象をどの場所に置くかでアクセスできる範囲が変わる。 関数のブロック内からは外の変数は参照できる。逆に関数の外からは中の変数は参照できない。関数内の変数を参照したい…

進捗

3/15 13:00~15:00 p.302~p.312 パッケージについて学んだ。

進捗

3/14 15:30~17:10 p.298~p.302 テキストにあった__name__ = "__main__"についてこのサイトを見て調べた。 テキストにあるtestmoduleファイルをモジュールとしてインポートした時、__name__はtestmoduleになる。ターミナルでpython3 testmodule.pyとしてスク…

進捗

3/13 13:30~17:10 p.294~p.296 スクリプトファイルに書くコメントアウトを学習した。 気になったのでこのサイトにのコードをもう一度書いて見て試した。 class Setitem: def __init__(self,item): self.item = item def __setitem__(self,key,val): print('…

進捗

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…

進捗

3/11 14:15~17:00 p.292~p.293 getattrについて参考になるサイト https://qiita.com/fumitoh/items/b090ae6ccd52e6a88d9e http://nekoyukimmm.hatenablog.com/entry/2016/04/17/220745 値を参照する関数getattr関数の書き方。getattr(インスタンス,'メソッド…

進捗

3/8 13:15~15:30 p.291~p.292 __iter__(self)メソッドのブロックにreturn selfを書くのは呼び出した時にインスタンス自体をイテレータとして返す必要があるから。 __next__(self)メソッドでは引数が一つ。呼び出す一連の流れはインスタンスをiter関数の引数…

進捗

3/7 13:35~16:10 p.290~p.291 特殊メソッドをこのサイトで学習した __getitem__(self,key)メソッドはインスタンスを建てる時、引数selfにディクショナリを入れる。インスタンス['key']でメソッドを呼び出す。 self.item.get(key)のようにアトリビュートにオ…

進捗

3/6 16:15~18:15 p.290 __format__(self,form_spec)メソッドの第二引数は、呼び出すときの{0:#b}.format(100)の#bに当たる。ちなみに#bは二進数表記のこと

進捗

3/5 13:00~16:30 p.287~p.289 親クラスの初期化メソッドの引数が一つ、子クラスの初期化メソッドの引数が二つ、この場合、子クラスでsuper()関数を使って親クラスの内容を受け継いで対応することは引数の数が違うのでできない。オーバーライドして書き換えた…

進捗

3/4 17:30~20:50 p.287 以前書いたテキストに載っているジェネレータ関数を使った素数の判別式をもう一度自分なりに考えた。 def get_primes(x = 2): while True: #while Trueなので終了しない。だからreturnで結果を返す形にする。 for i in range(2,x): if…

進捗

3/1 17:30~20:00 p.286~p.287 このサイトから特殊メソッドのサンプルコードをjupyternotebookで動かし学習した。 class Addition: def __init__(self,val): self.val = val def __add__(self,other): return self.val + other.val + 5 #表示 a1 = Addition(5…

進捗

2/28 p.284~p.286 17:30~20:00 特殊メソッドの学習をしていたがサンプルコードが見たかったのでこのサイトを参考にした。以下自分なりのまとめ class Iaddition: def __init__(self,value): self.value = value def __iadd__(self,other): self.value += oth…

進捗

2/27 p.274~p.285 15:00~18:00 スーパークラス、サブクラスの親子関係でメソッドを引き継ぐことができる。 サブクラスで引き継ぐ部分を変えることをメソッドのオーバーライドという。 super()関数を使うことでスーパークラスを呼び出す。super.スーパークラ…

進捗

2/26 p.258~p.273 16:45~19:15 attribute,アトリビュート, 属性はオブジェクト指向のメソッドのようにドットをつけて書く。変数のように自由に名付けて代入で定義する。 クラスを呼び出して変数に代入することでインスタンスができる。 アトリビュートはそれ…

進捗

2/25 p.247~p.252 19:00~22:30 高階関数は変数のように使える p.250のfuncはaccumlate、*argsは(1,2)に当てはまる。 クラスから作れるものがインスタンスで、クラスはインスタンスの性質を書いてまとめてある インスタンスはオブジェクトのようにデータと命…