Pyon's Diary
2007-09-23 舊 平成拾玖年丁亥葉月拾參日庚申 (日・曇・秋分) [長年日記]
Pythonチュートリアル。(2.5 用)
Pythonの作者Guido van Rossumに據る解説本。
Python Tutorial (2.5 用)を翻譯して書籍化したもの。
一通りPythonが使へて、更に新しい事を知り度い人には丁度良いかも知れ無い。
追記: 讀込み中。(2007-09-29)
「4.7 さらに凾數定義について」に記述されてゐる、
- 凾數引數のデフォルト値。
- 凾數の可變引數。
- アンパック代入。
が今迄のどの説明よりも判り易かつた。
亦「5.7 條件についての捕捉」を讀んで比較を連鎖させる事が出來る事を初めて知つた。
一應書いて置くと「比較の連鎖」とは、通常、
1 < a and a < 3
と書か無ければ成ら無い言語が夛い中でPythonでは、
1 < a < 3
と書ける事を言ふ。
「6.3 dir() 凾數」を讀んで初めてビルトイン凾數の一覧は
>>> import __builtin__ >>> dir(__builtin__) ['ArithmeticError', 'AssertionError', (中略) 'zip']
で得られる事を知つた。
「7.1 手の込んだ出力フォーマット」ではstr()とrepr()の違ひ、
- str() -- 人間が讀易い表現で値を返す。
- repr() -- インタープリタが讀易い表現を返す。
が判つた。亦「7.2.2 pickle モジュール」の處を讀んで、Javaで「シリアライズ」、Rubyで「マーシャリング」と呼んでゐるオブジェクトの永續化の事をPythonでは「ピクリング (ピクルス(漬物)化, pickling)」と呼ぶ事を初めて知つた。
「8.6 クリーンアップ動作の定義」を讀んでexcept節、else節とfinally節の順番が判る樣に成つた。
「9.2 Python におけるスコープと名前空間」「9.10 ジェネレータ」及び「9.11 ジェネレータ式」は未だ理解出來無い。もつとPythonに慣れた時に再び讀む事にした。
ヱヴァンゲリヲン新劇場版:序。
ヱヴァンゲリヲン新劇場版:序を觀て來たが、全四部作だとは知ら無かつた。
來年公開予定の第二部のスタッフを募集してゐた。
歸りに紀伊國屋に據つて漫畫を買つたが、勘定場の後ろに昔のテレビアニメ版が流れてゐた。其れと較べると矢張り畫が綺麗に成つてゐた。
拾年の歳月は此乃樣な處にも顯れるのだな。
Vim (7.x)での補完機能。
Perl Hacks -- プロが教へるテクニック & ツール 101 選のHack #5「Vimの中でPerl識別子にオートコンプリートをかけやう」を讀んだ。
が、抑々補完機能に附いて良く判つてゐないので「vim complete」で檢索してみた。
- cooldaemon の備忘録 - ファイルタイプ毎に辭書を分ける。
- 'I' novel? - Vim7で新規追加されたInsertモードの補完。
- おさかなラボ - vimにPerlとPHPの辭書を登録するぞ。
- 鳥獣保護区 - Vim 7.0の新機能。
追記: Omni Completion (2007-09-25)
Gentooで/usr/share/vim71/の下を探つてゐたら/usr/share/vim/vim71/autoload/の下に、
- pythoncomplete.vim
- rubycomplete.vim
等々が存在した。
此は何だろうとpythoncomplete.vimを開けてみると一行目に
"pythoncomplete.vim - Omni Completion for python
と書いて有つた。
「vim omni」で檢索して見ると色々解説頁が見附かつた。
どうも此乃「Omni 補完」は「C-n」では無く「C-xC-o」を打つと動くらしい。
試しにPythonの適當なソースで試してみた。
#!/usr/bin/python
# -*- coding: utf-8 -*-
class TestA (object):
def hello():
print "Hello World!"
a = Te
此乃状態で「C-xC-o」を打つと、
#!/usr/bin/python
# -*- coding: utf-8 -*-
class TestA (object):
def hello():
print "Hello World!"
a = TestA( ← 補完された!!!
と自分で定義したクラスのコンストラクタが補完された。
更に、
#!/usr/bin/python
# -*- coding: utf-8 -*-
class TestA (object):
def hello():
print "Hello World!"
a = TestA()
a.
の状態で「C-xC-o」を打つと、
#!/usr/bin/python
# -*- coding: utf-8 -*-
class TestA (object):
def hello():
print "Hello World!"
a = TestA()
a.hello( ← メソッド名が補完された!!!
と自分で定義したメソッド名が補完された。凄い。
GentooのVim (7.1.42)には最初から含まれてゐるみたいだけど、素のVim (7.1)は駄目だつた。
追記: Omni Completion (2) (2007-09-25)
上で「素の Vim (7.1) は駄目だつた」と書いたが、
を讀んで$HOME/.vimrcに以下の設定を追加したらOmni補完が効く樣に成つた。
if has('autocmd')
autocmd FileType c set omnifunc=ccomplete#Complete
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
endif
Gentooは上の設定が$HOME/.vimrcに無くてもOmni補完が効くのだが、何處で設定してゐるのか判ら無かつた。
