2009-07-01から1ヶ月間の記事一覧
配列のシャッフル を見て、 リストを変更する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訳は終わりです。我ながらひどい出来ですが、それでも来てくださる人がいたようです。ありがとうございました。 「実戦に勝る練習は無し」と、どこかで聞いたことがあります。 きっと、その通りなのでしょう。 …
import atexit from winsound import * atexit.register(MessageBeep({引数})) #処理開始 でOK、ウィンドウズでは。 以下は私の環境で発せられる音。 引数 音 無し MB_OKに同じ -1 『単純なビープ音』(MB_OKと同じ) MB_OK 一般の警告音「コン!」 MB_ICONA…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 メタプログラミングパターン (1) 特異メソッド メタプログラミングパターン (2) メソッドの自動定義 メタプログラミングは動的…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 メタプログラミングパターン (1) 特異メソッド メタプログラミングパターン (2) メソッドの自動定義 メソッドを自動的に定義す…
内部DSLパターン でも書きましたが、Pythonでもwith文を使えば、Rubyのブロックと似たような事が出来ます。 しかし、with文コンテキストマネージャには、__enter__、__exit__メソッドを定義しなければならないのが面倒です。 そこで、contextlib.contextmana…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 内部DSLパターン (1) 内部DSLパターン (2) ブロック 今回は、内部DSL(ドメイン特化言語)パターンです。 前回のInterpreterパ…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 内部DSLパターン (1) 内部DSLパターン (2) ブロック Rubyが内部DSLに向いている一つの理由は、ブロック構文の存在です。 Python…
Rubyによるデザインパターンが終わったら、書くことが無くなってしまう。
集合αが、自然数であるとは、αが順序数であり、任意のβ≦αは超限順序数ではないこと。 要するに、 0 = φ1 = {0} = {φ}2 = {0, 1} = {φ, {φ}}3 = {0, 1, 2} = {φ, {φ}, {φ, {φ}}} ・・・と、言うのを、先日のセミナーで勉強しました。 しかし、ラムダ計算を使…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Interpreterパターン (1) Interpreterパターン (2) ファイル検索用言語 Interpreterパターン (3) ASTを手に入れる 周知の通り、…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Interpreterパターン (1) Interpreterパターン (2) ファイル検索用言語 Interpreterパターン (3) ASTを手に入れる Interpreter…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Interpreterパターン (1) Interpreterパターン (2) ファイル検索用言語 Interpreterパターン (3) ASTを手に入れる Interpreter…
raise NotImplementedError を間違えて、 raise NotImplemented と、書いたら、エラーになりました。 TypeError: exceptions must be classes or instances, not NotImplementedType NotImplementedとは、なんぞや?と、リファレンスを引いてみたところ・・…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Builderパターン(1) Builderパターン(2) ポリモーフィックなBuilder Builderパターン(3) Builderでオブジェクトの妥当性を保証…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Builderパターン(1) Builderパターン(2) ポリモーフィックなBuilder Builderパターン(3) Builderでオブジェクトの妥当性を保証…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Builderパターン(1) Builderパターン(2) ポリモーフィックなBuilder Builderパターン(3) Builderでオブジェクトの妥当性を保証…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Builderパターン(1) Builderパターン(2) ポリモーフィックなBuilder Builderパターン(3) Builderでオブジェクトの妥当性を保証…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次前項でBuilderパターンについて書きましたが、 ComputerBuilderを作っても、まだ、 builder.set_turbo() builder.add_dvd() buil…
PythonRecipe の『015:特異メソッド』に、 ここに先日書いた記事『Pythonで特異メソッド』 の内容を書き加えました。 特に注意書きはなかったようだけど、勝手に書き込んだりしてよかったのかな? 追記:fgshunさんによると、一見さんも歓迎だそうです
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Factoryパターン(1) - Factory Method Factoryパターン(2) - 引数にクラスを渡すFactory Method Factoryパターン(3) - Abstract…
『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)の例をPythonに変換して書いています。目次 Factoryパターン(1) - Factory Method Factoryパターン(2) - 引数にクラスを渡すFactory Method Factoryパターン(3) - Abstract…
Factoryパターン(1) - Factory Method Factoryパターン(2) - 引数にクラスを渡すFactory Method Factoryパターン(3) - Abstract Factory Factoryパターン(4) - 引数にクラスを渡すAbstract Factory Template MethodパターンをStrategyパターンに書き換えられ…