タグ

oopとpythonに関するanimistのブックマーク (3)

  • Python基礎講座(13 クラス) - Qiita

    class Spam: val = 100 def ham(self): self.egg('call method') def egg(self,msg): print("{0}".format(msg)) print(("{0}".format(self.val))) spam = Spam() spam.ham() 結果は以下になります。 call method 100 Pythonではクラスはclass クラス名 **:**で作成します。クラス名の先頭は大文字です。 クラス変数とクラス内関数(=メソッド)は字下げを使用して定義します。 オブジェクトは オブジェクト = クラス() で生成します。 メソッドは *オブジェクト.メソッド()*で呼び出します。 上記のプログラムを日語で説明すると クラスSpamのオブジェクトspamを生成します spamオブジェクトがhamメソッドを呼

    Python基礎講座(13 クラス) - Qiita
  • Pythonのクラスでコンストラクタを使う方法【初心者向け】

    オブジェクトの設計書のような役割です。オブジェクトにどのような機能があるか記述されています。 オブジェクト インスタンスとも呼ばれます。クラスをもとに実体化してプログラムで使えるようにしたものがオブジェクトです。Python では、全てがオブジェクトです。 クラスとオブジェクトを使うと、プログラムを分かりやすく記述することが出来ます。Python では全てがオブジェクトとして扱われますので、クラスとオブジェクトの考え方は必ず理解しておきましょう。詳細は公式ドキュメントやチュートリアルを参考にしてください。 公式ドキュメント https://docs.python.jp/3/reference/compound_stmts.html#class-definitions チュートリアル https://docs.python.jp/3/tutorial/classes.html コンストラクタ

    Pythonのクラスでコンストラクタを使う方法【初心者向け】
  • Pythonではインスタンス変数をクラス定義直下に書いてはいけない(戒め) - Qiita

    TL;DR インスタンス変数のつもりでクラス直下に変数を定義すると事故る場合がある 同一プロセス内でクラスがインスタンス化されるのが2回目以降、かつ変数がミュータブルな型である場合に事故る インスタンス変数は__init__内で初期化すると良い これにまつわる根の動作はまだ理解できていない 事の顛末 Pythonでマルチスレッドで動くコードを書いていた際、別々のスレッド同士でlistの中身が混ざり合うことがありました。 Pythonを書いていながら私は静的型付け言語が好みなもので、JavaSwiftでそうするように変数の名前と型を先に書いておいたのです。 再現 ここでは、メソッドの引数に指定された整数たちを奇数と偶数のリストに振り分けて格納する、という例を用います。 from typing import List class OddAndEven: odds: List[int] =

    Pythonではインスタンス変数をクラス定義直下に書いてはいけない(戒め) - Qiita
  • 1