タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

pythonとtipsとpython3に関するeconconのブックマーク (2)

  • pythonのスコープとか名前空間について、関数とクロージャについて [KamonoWiki]

    例えば、for文のブロックはglobal環境と同じでスコープがわけられていない。 globalスコープは普通に定義したオブジェクトで、次のように関数からでもアクセス可能。 x = 1 #globalオブジェクト def f(): return x print f() 実行結果。 1 関数のローカルスコープというのは def f(): x = 1 return x というように関数の中で実行した変数。 ちなみに、当たり前かもしれないが、 x = 0 class cl(object): global x x = 2 などというようにクラスブロックの中でglobal変数の値を変更することもできる。普通はメソッド中で値を書き換えると思うので、上のようにクラス定義で直接値を変えるようにはしないと思うが。 あと、クラスブロックはクラス変数があるので、globalとクラスブロックはスコープが分けられてい

  • PythonでClassの__init__メソッドの継承を試す。 - oxdbのブログ

    PythonでClassのインスタンス化する時のコンストラクタである__init__メソッドの継承を試して見ました。 まずFirstクラスをインスタンス化するとxとyの値が設定されます。次にFirstクラスを親とするSecondクラスをインスタンス化した場合にxは親を継承、yはSecond用の値で上書き、さらにzを新規追加するという処理をしています。 ソースコード class First(object): def __init__(self): self.x = "first init x" self.y = "first init y" class Second(First): def __init__(self): First.__init__(self) # SuperClassであるFirstの__init__メソッドを実行 self.y = "second init y" # F

    PythonでClassの__init__メソッドの継承を試す。 - oxdbのブログ
  • 1