pythonのクラスの__init__やselfを理解したいと思っています
例えば
python3
1class Person: 2 def __init__(self,name,age): 3 self.name=name 4 self.age=age 5 6taro=Person('太郎',17)
このようにinit関数は名前などの情報を登録するのに使えるのというのは知っています。
しかし、
python3
1class Integrate: 2 def __init__(self): 3 pygame.init() 4 screen=pygame.display.set_mode((1000,700)) 5 self.first_field() 6 while(True): 7 self.draw(screen) 8 self.key_handler() 9 pygame.display.update()
pygameでちょっとしたゲーム的な物を作ってるところの抜粋なのですが、このようにinitの後にselfだけを書いて下にselfとは関係ないコードが並んであったりしているのがわかりません。
自分の稚拙な考えだとinit関数は何か情報を登録するために使うものだと思っていましたので頭がこんがらがっています。
他のサイトを見ても「動作を覚えるといいです」や、「クラスの中でも特殊なものです」、「インスタンス化することができる関数です」など自分には納得できるものがありませんでした。
今知っている知識としては、
インスタンス化や、メソッドなどの用語は知っていますが、コンストラクタとinitの違いが分かっていない状態です(全く同じなのかもしれませんが)。
また、selfはその関数を指して、呼び出すときに呼び出しやすくさせる?的なことも知りました。
長くなりましたが、まとめるとinit関数にはインスタンス化によって情報の登録的なことをする関数だと自分は思っていますが、それ以外でinit関数が使われているのを見てとても気持ちが悪いと思いました。本質的にinit関数とは何なのか教えてほしいです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/26 11:41