タグ

スコープに関するfjwr38のブックマーク (5)

  • Rubyにおけるスコープのおはなし

    今ここで「首相は誰?」と言ったら、答えは「安倍晋三」になります。ジュネーブの国際会議で「首相は誰?」と言ったら、答えは「不定」になります。しかし世界統一国家なるものが存在しうるなら、そこでの答えは「バラク・オバマ」になります。 つまり「首相」という語は環境依存です。 「首相」における環境依存性を排除する一つの方法は、それに名前空間、つまり対象限定子を付けることです。「日の首相は誰?」「世界統一国家の首相は誰?」と言えば、どんな環境にあろうとも「首相」という語が指す対象は一意です1。 Rubyの定数 Rubyにも名前空間の機能があるので、環境依存性を排除した首相を実装できます。 class Japan PrimeMinister = 'Shinzo Abe' end class UK PrimeMinister = 'David Camelon' end class Germany Pri

  • Python でネストした関数の定義と、呼び出し

    1. 関数の中の関数 Python では、関数の中に、関数を定義することができる。 例えば、ITmedia エンタープライズ:2.4への機能強化で広がるPythonの世界 (3/4) には、以下のような例が書かれている。 def declareArgs(*argTypes): def checkArguments(func): assert func.func_code.co_argcount == len(argTypes) def wrapper(*args, **kwargs): ... ネストした関数を呼び出すには、関数の呼び出しで、順に引数を与えれば良い。 7.5 関数定義 に、呼び出し方の例が書かれている。 func = f1(arg)(f2(func)) 2. 関数のネストと、スコープ E. 用語集 によると、 ネストされたスコープ (nested scope) ある文が何ら

    Python でネストした関数の定義と、呼び出し
    fjwr38
    fjwr38 2012/07/10
    pythonもこういう風に書けるのか〜
  • Python の名前空間とスコープ

    プログラムのロジックを考え、実装を行う上で、変数の名前空間やスコープはとても重要です。 これらはロジックを組み立てる上での複雑さに直結し、ソースコードの読みやすさにダイレクトに関係してくるためです。 この記事では、私が Python で開発をする上で気をつけるようにしている名前空間やスコープに関するお話をします。 コーディングスタイルについて 名前空間やスコープの前に、まずは基的なコーディングスタイルについて軽くお話しします。 Python のコーディングスタイルというと、 PEP 8 – Style Guide for Python Code (日語訳は こちら )が有名です。 これは、 Python でプログラムを書く上で守っておくとよいお作法について書かれており、 Python のコーディングスタイルとしてはデファクトスタンダードといえるでしょう。 この PEP8、例えば以下のよ

    Python の名前空間とスコープ
  • [JavaScript]僕、スコープとかクロージャとか曖昧でした | ブログが続かないわけ

    Douglas Crockford, 水野 貴明 ¥ 1,890 手っ取り早く習得 痒いとこだけ掻いてくれる JavaScriptを勉強しなおすのにとってもよいです。 JavaScript コアに関する最高の 付録を除くと100ページちょいという、とてもライトなですが、内容は濃密です。JavaScript の中で、一番わかりにくいだろうなと思われるようなところが集中的に解説されているように感じられ、勉強したてでかつそろそろわかりかけてきたなーと思い始めていた僕にとって、最適の一冊でした。知って良かったなと思えるところがたくさんありましたので、これから少しずつ紹介して行きたいと思いますが、今日はその中でも特に印象的だった、変数のスコープにまつわるお話をしてみたいと思います。 変数のスコープはその変数が宣言された関数の中だけに限定されます。なんとなく知ってはいたのですが、for 文とかでは

    [JavaScript]僕、スコープとかクロージャとか曖昧でした | ブログが続かないわけ
  • fladdict.net blog: JavaScript, ActionScriptにおける .this とは何なのか?

    人様にActionScript (あるいは JavaScript)を教える時に、絶対に鬼門となるthisスコープについてのまとめメモ。 ECMAスクリプトでは関数が他の変数に代入可能な為、関数のthisが文脈によって変動します。どうも、Javaとかやってる人にはそれがスゴイ気持ち悪いらしいのです。 thisとな何なのか? 端的に言うならば、thisは「その関数を、何のプロパティと解釈して呼び出したか?」によって決定します。 関数を直接呼び出す場合と、オブジェクトのプロパティに代入してから呼び出す場合を比較してみます。 function hoge(){ alert(this); //trace(this); flashの場合はコッチ } var myObj = new Object(); myObj.hoge = hoge; hoge(); myObj.hoge(); のように書いた場合、

  • 1