タグ

2009年3月20日のブックマーク (2件)

  • 時間城年代記:禁断の奥儀、lambda + exec

    この世の中には、「やってはならない」ことがたくさんある。 しかし、今回やるような「いけないプログラミング遊び」は大いにすべきだと思う。 もちろんあなたがプロのプログラマで、仕事Pythonを使うなら、ここでやるようなコトをコードの中に埋め込んでは決してならない。 でも、あなたが何に使うでもなく手慰みにプログラムを書くのであれば、誰も文句は言うまい。 プログラミングで色々遊んでおくことは、結果的にはその言語/環境のポテンシャルを知ることになり、いざという時に(避ける、というネガティブな利用法を含め)役に立つかもしれない。 まぁ、プロのプログラマでもなく、プログラミングは九分九厘まで趣味である私には関係のない話だが…… というわけで、いつものラクガキスクリプト。 今回はPython 3になって「オイシク」成長したexec関数と、lambda式(文)の組み合わせで遊んでみよう。 ※今までPyt

  • 時間城年代記:exec関数<詳細版>

    前にも何度かexec関数や旧exec構文を取り上げたのだが、今回は少し徹底的にやろうと思う。 なぜかといえば、そもそもPython 3で新たに加えられたexec関数とlambdaの『最凶』タッグによるイタズラ記事を書こうと思って調べていたのだが、どうもその前に、exec関数の性質や、特に判り難い名前空間やスコープルールについて整理をしておく必要性が出てきたのだ(読んでいる人のためもあるが、主に自分向け) そのために、内容的には以前と重複する箇所も多々あるが、情報整理のためと思ってご容赦ねがいたい。 ■はじめに execは以前はprint同様構文扱いだったが、printが関数になってもさした変化は無いのに対し(昔だって、sys.stdout.writeを呼び出せば同等のことができた)execの構文から関数への移動は、はっきり言って危険なほど変化が大きい。 ※もちろんexecのラッパ関数を書け