タグ

*programmingとPythonに関するareyoukicking2のブックマーク (2)

  • Python のジェネレータ (1) - 動作を試す

    1. イテレータとはコンテナの要素を走査するためのオブジェクト これまでに Python の リスト内包表記、イテレータ について調べた。 次は、「ジェネーレータ」。 Python のジェネレータを理解するには、イテレータの理解が不可欠。ジェネレータについて調べる前に、イテレータの復習から行う。 a. イテレータの役割 Python のドキュメント「9. クラス」 における「9.8 イテレータ」の説明を確認すると、 イテレータの使用は Python 全体に普及していて、統一性をもたらしています。背後では、for 文は コンテナオブジェクトの iter() を呼び出しています。… イテレータは、Python において特別扱いされており、for 文と密接な関わりを持っている。 … この関数は next() メソッドの定義されたイテレータオブジェクトを返します。 next() メソッドは一度コン

    Python のジェネレータ (1) - 動作を試す
  • Python のクラスメソッド – デコレータ @classmethod, @staticmethod を使って

    1. メソッドをクラスメソッドにするときは、デコレータを使う あるメソッドをクラスメソッドにするとき、 Python ではデコレータを使うことができる。 2.1 組み込み関数 によると、(太字は引用者による) classmethod( function) function のクラスメソッドを返します。 クラスメソッドは、インスタンスメソッドが暗黙の第一引数としてインスタンスをとるように、第一引数としてクラスをとります。クラスメソッドを宣言するには、以下の書きならわしを使います: class C: @classmethod def f(cls, arg1, arg2, ...): ... ふーむ、ここでも第一引数が必須で、それがクラスを参照するということか。Python のこういう書き方は、最初とっつきにくいと感じた。 (+_+) デコレータの書き方としては、関数の前に @classmeth

    Python のクラスメソッド – デコレータ @classmethod, @staticmethod を使って
  • 1