IronPythonの設定
ベースはこれ。
Python & IronPython 入門
合併のお知らせ|OKIソフトウェア
このページがなくなっても困らないように一部抜粋と追加で設定した部分は以下の通り。
後でまとめたい。
ダウンロードする
解凍する
適当なディレクトリに置く
環境変数でPATHを切る
(適当なディレクトリ)\IronPython-1.0.1\Lib\site.pyを以下のようにする
import sys import clr from System.IO import Path, Directory, FileInfo dir = Path.Combine(sys.prefix, 'DLLs') if Directory.Exists(dir): sys.path.append(dir) files = Directory.GetFiles(dir) for file in files: if file.lower().endswith('.dll'): try: clr.AddReference(FileInfo(file).Name) except: pass sys.path.append(r'C:\Python25\Lib') sys.setdefaultencoding('cp932')
便利な技
[インタラクティブのときのオートインデント]
ipyのショートカットに「-X:AutoIndent」をつける
Rubyの括弧の省略
先日putsの動作が意図した通りにならない件の原因は、
複数の引数があるメソッドを連結させた場合に、
グルーピング目的の括弧とメソッド呼び出しの括弧の間で
優先順位の問題が発生するためらしい。*1
以下、Try Ruby!での実験結果。
http://tryruby.hobix.com/
まずは、関数の登録。
>> def add a, b .. a + b .. end => nil
2つの引数の足し算である。
puts add(add(1, 2), 3) のつもりで次のを書く
>> puts add add 1, 2, 3 ArgumentError: wrong number of arguments (3 for 2) from (irb):4:in `add' from (irb):4
当然だめ。
add(add(1, 2), 3) のつもり。
>> add add 1, 2, 3 ArgumentError: wrong number of arguments (3 for 2) from (irb):5:in `add' from (irb):5
当然だめ。これは納得。
add 1,2 の部分だけ括弧。
>> add (add 1, 2), 3 => 6
これはOK?グルーピングの括弧として認識されている?なんで?
putsをつける。
>> puts add (add 1, 2), 3 ArgumentError: wrong number of arguments (1 for 2) from (irb):7:in `add' from (irb):7
だめ〜。put add(add(1, 2)), 3と認識されている?
スペースをつめてみる。
>> add(add 1, 2), 3 SyntaxError: compile error (irb):8: parse error, unexpected ',', expecting $ add(add 1, 2), 3 ^ from (irb):8
パースすらできない。
>> add(add 1, 2) ArgumentError: wrong number of arguments (1 for 2) from (irb):9:in `add' from (irb):9 from :0
そりゃ、そうだよねぇ。
>> add (add 1, 2), 3 => 6
やっぱり、OK
わけがわからん。
実装で差が出そうな感じ。
*1:メソッド呼び出しの括弧の方が優先らしい。しかし、実験結果から見ると違うようだ
括弧の省略
ただ、1つ気になる点があった。
メソッド呼び出しで括弧を省略している点である。
これは、Rubyの売りで本書ではこれを散々使っている。
私も最初は好んで使っていたが、今はあまり好きではない。
なぜかは、本書を見ればわかると思う。
putsでは括弧を時々使わくてはいけないのである。
引数が複数あるメソッドに対するputsは
括弧をつけないと文法解釈がうまくいかなくて警告(エラー?)となるという
ごく当たり前のことが原因であり、
訳知り顔で「優先順位を考えればさぁ当然でしょ」
といってしまいかねないところだ。
でも、よく考えるとこれはいいデザインなのかと疑問が残る。
まず、初心者の立場になって考えるとはっきり言ってわかりにくい。
美しい、とかタイプ量が少ないとかよりも
意図しない動作を減らす方がよっぽどよい。
それに、きちんと理解した今でもイライラする。
私が一番嫌なのは、
デバグなどでちょっと表示させようとして
その行にputsとつけたときに、エラーになることである。
逆のパターンは最悪で
自分のコーディングスタイルを守るために
いちいち括弧を外さなくてはならない
(あるいは式全体に括弧をつけたり、外したりする)
こんなんでいいのだろうか?
で、結局括弧の省略はほとんどやめてしまった。
初めてのプログラミング
- 作者: Chris Pine,西山伸
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2006/07/24
- メディア: 大型本
- 購入: 10人 クリック: 155回
- この商品を含むブログ (53件) を見る
ほぼ読み終わった。*1
少ない要素で無駄なく教えるよい本。
「オブジェクト」はすぐ出るけど、
「クラス」がなかなか出てこないところがいい。
*1:10/11読了