2009-01-01から1年間の記事一覧
inspect.currentframeを使うと、関数の呼び出し元のモロモロにアクセスできます。ローカル変数の辞書にも。すると、呼び出し元に好き勝手に変数を追加、つまりマクロ的なことが出来ちゃいます。 def def_getter(*names): frame = inspect.currentframe(1) lo…
WindowsでPython2.6のインタラクティブモードでタブ補完をしたい場合に使うバッチ - 試行錯誤と創意工夫(S!アプリ開発日記+α) によると、PYTHONSTARTUPに適当に追加すればよいそうです。 PYTHONSTARTUP環境変数に指定されたスクリプトは、インタラクティ…
HTMLを丸ごと書くと大変なので、自作WEBページでは、一部を自動生成しているのですが、できれば、読みやすいHTMLを出力したいものです。 いわゆるpretty print lxmlやBeautifulSoapには、HTMLを可愛く出力する関数・メソッドがあります。 まず、BeautifulSou…
高校時代の友人が訪ねてきた。彼に付き合って入った、某アニメ・コミック関連商店 CDの陳列棚には、こうかかれていた 【OP 化物語】【ED 化物語】 「オープニング化ものがたり?エンディング化ものがたり!? い、一体、どんなアニメなんだ!?」 私は友人に…
PyQtでテキストの色分け表示をする方法を調べた。次のページを参考にした。 http://doc.trolltech.com/qq/qq21-syntaxhighlighter.html とりあえず、Pythonの3連クオテーションの文字列をハイライトした。だが、長いテキストになると反応が鈍く、実用にはな…
PythonでMUGENクローンを製作中です。大学が長〜い夏休みなので、ダラダラと。 しかし、完成する兆しがありません。 式のパースにYACCを勉強したり、設定ファイルでパラメータ名と型を効率よく定義するためのDSLを作ったりなんだリしてるうちに、かれこれ1…
名前順でソート(XPスタイル) で引用したCmpToKeyを、Cythonで書きなおしてみた。 参考: Cythonを使ってみた - loooo まず本体 #encoding:utf-8 #cmp_to_key.pyx from functools import partial cdef class _K(object): cdef readonly cmp, obj def __cin…
という名のページ がありました。 昭和63年生まれの私は、当然、アセンブラを知りません。十進BASIC → C++ → Delphi → Turbo C++ → Python と進んできたので。 10年ぐらいしたら、『C言語を知らない子供たち』でしょうね。 趣味グラマの私は、Python拡張は…
投票すませて帰ってきました。
glob.glob()で得られるファイル名の順番は、名前順ではないことに注意。001.jpg, ... , 100.jpgの画像フォルダ内をglob.glob()して得たリストの順番は名前順ではない。list.sort()すればいいけれど。 peroonの日記 しかし、list.sort()すると、1.jpg, 10.jpg…
おかげさまで大学院に合格しました。明日21日には、タイトルの通りです。returnは、9月になります。 知り合いでこのブログを読んでいる方はいないと思いますが、一応。
倉田令二朗・篠田寿一の「公理論的集合論」の基数のところを読んでいて、 ちょっと引っかかった所がありました。 「公理論的集合論」では、こんな定義になっていました。 集合XとYの間に全単射が存在するとき、XとYは対等(X〜Y)と言う。 整列可能定…
IE6 No More という運動が始まったそうです。 友人と私のWebページ (訪問者は友人のパイナップル目当てですが)の、 ここ1ヶ月の訪問者のブラウザを調べた所、26.20%もの人がIE6を使っているようでしたので、 うちのページも、IE6 No Moreに参加する事にし…
あなたの「耳年齢」測ります で書いたスクリプトを実行ファイルに変換してみました。 exeだからって、どういうわけでもないのですが、一応公開します。 Webページ 一応ついでにsetup.pyと本体ソースも掲載。 #encoding:utf-8 #setup.py from distutils.core …
おいしそう・・・いや、不味そう?歯ごたえはありそうだ
ご存知の方も多いと思いますが、「モスキート音」というのがあります。何年か前、テレビでやっていました。 年を取るほど高音は聞き取れなくなるので、 蚊の羽音のような高い音は、オヤジは気にならないが、聞こえる若者にはすごく耳障り。 といった代物です…
チョット前に、なぜjoinメソッドは、 ["a", "b", "c"].join(",") ではなく、 ",".join(["a", "b", "c"]) なのか? ということが、盛んに書かれていたみたいですが・・・ Pythonの文字列連結(join)にまつわる議論 まとめと考察(1) そろそろ'-'.join(seq)に…
「Rubyは洗脳言語」とは、どういうことか?と、思って調べていたら、『C言語の洗脳』なる記事を見つけました。 C言語はプログラマなら誰でも一度は習うだろう言語だが、本当は、C言語は抜群に優れた万能言語ではないと言うお話。 C言語の洗脳 (上の元ネタ)…
アッカーマン関数(アッケルマン関数・Ackermann function)という関数があります。 def ack(m, n): """アッカーマン関数""" if m == 0: return n + 1 elif n == 0: return ack(m - 1, 1) else: return ack(m - 1, ack(m, n - 1)) 一見、ちょっと奇妙なだけ…
イテレータはコピーできない。 >>> import copy >>> def it(): ... for i in xrange(10): ... yield i ... >>> list(it()) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a = it() >>> b = copy.copy(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> Fil</module></stdin>…
MUGENと言う格闘ゲームエンジンで遊んでいるのですが、キャラクターやステージを自作しようとすると、出来はともかく、スクリプトの記述に繰り返しが非常に多い。 何十回も書くのは面倒なので、Pythonでどうにかできないか、と、作ってみました。 まず、埋め…
配列のシャッフル を見て、 リストを変更するlist.sortに対し、新たなリストを返すsortedがあるように リストをシャッフルするrandom.shuffleに対応する、「shuffled」関数を作ってみました。 from __future__ import print_function import random from tim…
前稿でshuffled関数を作りましたが、randomモジュールはPythonで書かれているので、(C言語で書かれたarrayやcStringIOと違い)後から関数を好き勝手に追加できます。 >>> import random >>> def shuffled(x): ... x = list(x) ... random.shuffle(x) .…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)を読みました。 私はPythonでばっかり遊んでいるのですが、PythonとRubyとは基本は同じ機能のように見えるので、Pythonによるデザインパターンに翻訳してみようと思います…
マクローリン展開によるsin関数 に触発されて、Pythonでも同じ事をやってみました。 ・・・と言っても、Haskellの直訳はしません(できません)。 書いてみたら、イテレータ・ジェネレータだらけに・・・。 #sin.py from __future__ import ( with_statement…
いまだに継承を使うタイミングが分からない 委譲より実装継承を使う、というかStrategyよりTemplate Methodを使うのは、 クラス独自の機能追加が必要なときではないかと思います。 pythonのthreading.Threadクラスは、 runメソッドをオーバーライドすると、 …
from __future__ import ( with_statement, division, print_function, ) import wx class Frame(wx.Frame): def __init__(self, parent=None): wx.Frame.__init__(self, parent) # タスクトレイに入れるアイコン self.ico = wx.Icon("dw.ico", wx.BITMAP_TY…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Convention over Configuration パターン (1) Convention over Configuration パターン (2) "Convention over Configuration(Co…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Convention over Configuration パターン (1) Convention over Configuration パターン (2) CoCで重要なのは、まず規約を良く練…
これで「Rubyによるデザインパターン」のPython訳は終わりです。我ながらひどい出来ですが、それでも来てくださる人がいたようです。ありがとうございました。 「実戦に勝る練習は無し」と、どこかで聞いたことがあります。 きっと、その通りなのでしょう。 …