Hatena::ブログ(Diary)

西尾泰和のはてなダイアリー

2008-02-04

最もタメになる「初心者用言語」は Python

追記:これはネタだったのですが、思いの外ページランクが高いみたいで「初心者 Python」で検索した人がここに来てしまうそうです。

本当にPython初めての人は下の記事を読むといいと思います。

-----

Pythonだってクロージャつくれるもんっ!><

// JS
function make_counter(){
    var x = 0;
    return function counter(){
        x++;
        console.log(x);
        return counter;
    }
}

make_counter()()()()
# Python
def make_counter():
    def counter():
        counter.x += 1
        print counter.x
        return counter
    counter.x = 0
    return counter

make_counter()()()()

ほら!そっくり!(><)

class make_counter():
    def __init__(counter):
        counter.x = 0

    def __call__(counter):
        counter.x += 1
        print counter.x
        return counter

ちょっとdefがclassになって初期化処理が__init__の中に入っただけだよ!

class Counter(object):
    def __init__(self):
        self.count = 0

    def __call__(self):
        self.count += 1
        print self.count,
        return self

    def reset(self):
        self.count = 0
        print "[reset]",
        return self
>>> Counter()()()().reset()()()()
1 2 3 [reset] 1 2 3
<__main__.Counter object at 0x0149C7B0>

リセットボタンも簡単につけられるよ!

最もタメになる「初心者用言語」は Python!

インデントを使う習慣がつくよ!(><)

-----

amachangに「Pythonってクロージャ使えるの?ぷぷっ」とDISられてかっとなって書いた記事がなんだか祭りにPython代表で参加したみたいな形になっていてびっくり。

誰かがまじめにPythonのいいところを書いてくれるといいなー。

自分でまじめに書く気がないので過去の記事へリンクリンク。

どう書くorgもPythonで作られています。

no-nameno-name 2008/02/04 15:37 同意です。
JavaScript, Python, Ruby を並べると、
シンタクスもセマンティクスも、Pythonが一番すっきりしていて分かりやすいと
思うんですけどねえ。

しょうしょう 2008/02/04 16:41 Pythonのstring.join()の順番はあんまり好きじゃない(list.join()であってほしい)。
おいらは リストに joinしてほしいんであって、デリミタの文字に joinしてほしいんじゃない。

匿名匿名 2008/02/04 17:08 しょう さん:
FAQ読んでください。 http://www.python.org/doc/faq/general/#why-is-join-a-string-method-instead-of-a-list-or-tuple-method

しょうしょう 2008/02/04 21:39 なるほどそれはわかる。けれども実装の都合にあわせさせるような言語が初心者向け〜?
という流れなんだけどな。

amachangamachang 2008/02/04 21:54 Python クロージャ書けるのぷぷって言ってないお><
代入出来るのっていったんだお><

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close