タグ

Pythonとscopeに関するoinumeのブックマーク (2)

  • 9. クラス

    Python では、最小限の構文と意味付けを使ってクラス (class) のメカニズム を言語に追加しています。Python のクラスは、C++ と Modula-3 で 見られるクラスメカニズムを混合したものです。モジュールがそうであるように、 Python におけるクラスでは、クラス定義とユーザとの間に絶対的な障壁を おかず、ユーザが礼儀正しく、 ``定義に首を突っ込む'' ことはないと あてにしています。とはいえ、クラスにおける最も重要な機能はそのままに、 完全な力を持っています: クラスの継承 (inheritance) メカニズムでは、 複数の基底クラスを持つことができ、導出されたクラスでは基底クラスの 任意のメソッドをオーバライド (override, 上書き) することができます。 メソッドでは、基底クラスのメソッドを同じ名前で呼び出すことができます。 オブジェクトには任意の

  • PythonとRubyの変数のスコープのまとめ - saito’s blog

    僕が普段使用するPythonRubyの変数のスコープについてまとめてみました。 Python 1. if文やfor文などの制御構造はスコープを作らない。 次のプログラムでは、if文の内側と外側のスコープは共通なので、if文内でaが上書きされてa=1が出力されます。 a = 0 if True: a = 1 print "a = %d" % a # a = 1 2. 関数定義とクラス定義では新しいスコープが作られる。 関数定義やクラス定義では新しいスコープが作られるので、関数定義の内側と外側で同名の変数が存在しても、両者は区別されます。 次のプログラムでは、関数foo内で変数aに代入を行っていますが、この場合fooの内側の変数と外側の変数は別物なので、外側の変数が上書きされることはありません。 a = 0 def foo(): a = 1 print "a = %d" % a # a =

    PythonとRubyの変数のスコープのまとめ - saito’s blog
  • 1