2008-08-01から1ヶ月間の記事一覧

IronPython2.6

>>> C#.use(better, IronPython=WPF) ... IronPython で学ぶ 〜 WPF プログラミングの世界 WPF によるオブジェクト指向プログラミングへの扉を開きます。 >>> C#.use(better, IronPython="GoF") # WPF ... IronPython で学ぶ デザインパターンの世界《WPF》 …

Jython2.5.1

>>> Java.use(better, Jython="GoF") # Swing ... Jython で学ぶ デザインパターンの世界《Swing》 ... # GoF を反面教師に -- Let's GoForward Swing によるオブジェクト指向プログラミングへの扉を開きます。 >>> Java.use(better, Jython=Swing) ... 例題…

Python3.1

>>> Python.use(better) ... Python.use(better) # Python はじめました Python によるオブジェクト指向プログラミングへの扉を開きます。 Python.use(better) 旧版 >>> Python.use(better) # Stairway to OOP ... OOP への道 〜 if/for/配列と別れる50の…

Contents

category note Python への扉 ハイブリッド型のオブジェクト指向から、純粋なオブジェクト指向への扉を開きます。※ Java/C# などに飽き足らないみなさんは、こちらへどうぞ。Python3.1 Jython2.5.1IronPython2.6 Smalltalk への扉 本格的なオブジェクト指向…

《こちらに移動中です》

《Previous|10/10|Next》Python.use(better, follow=”K&R”) # for novice 《記事一覧》 改訂♪2008/10/05 メソッド keys/values/items 組み込み型 dict には、次の3つのメソッドを適用できます。クラス eXdict の傘下でも、これに準拠します。 メソッド ke…

Python.use(better, follow=”K&R”) リファクタリング 9/10

《Previous|9/10|Next》Python.use(better, follow=”K&R”) # for novice 《記事一覧》 改訂♪2008/10/04 [Python]メソッド keys/values/items 組み込み型 dict には、次の3つのメソッドを適用できます。クラス eXdict の傘下でも、これに準拠します。 メソ…

Python.use(better, follow=”K&R”) リファクタリング 8/10

《Previous|8/10|Next》Python.use(better, follow=”K&R”) # for novice 《記事一覧》 改訂♪2008/10/04 [Python]特殊メソッド __setitem__ 演算子 [] と = を組み合わせたときの動作を規定するのが、特殊メソッド __setitem__ です。それは、次のようにし…

Python.use(better, follow=”K&R”) リファクタリング 7/10

《Previous|7/10|Next》 Python.use(better, follow=”K&R”) # for novice 《記事一覧》 改訂♪2008/10/04 リファクタリング:メソッド固有の処理 [Python]何が問題か? # cz_08.py -------------------------------------------- before --- class HashTabl…

Python.use(better, follow=”K&R”) リファクタリング 7/10

《Previous|7/10|Next》 Python.use(better, follow=”K&R”) # for novice 《記事一覧》 改訂♪2008/10/04 リファクタリング:メソッド固有の処理 [Python]何が問題か? # cz_08.py -------------------------------------------- before --- class HashTabl…

Python.use(better, follow=”K&R”) リファクタリング 6/10

《Previous|6/10|Next》 Python.use(better, follow=”K&R”) # for novice 《記事一覧》 改訂♪2008/10/03 リファクタリング:クラス固有の処理 [Python]何が問題か? #------ before -------------------------------- class HashTable: def __getitem__(se…

事例:dict.items を使って

>>> dirs = dict([(e,type(getattr(dict,e))) for e in dir(dict)]) >>> for k,v in dirs.items(): ... if k in ["keys","values","items"]: print k,v ... keys items values これらはどれも、method_descriptor であるのが分かります。 《ひよ子のきもち♪2…

foreach 文

ここには、次に示す典型的な C# のイディオムが記述してあります。 foreach (... kv in self) { ... kv ... }foreach ループでは、IDictionary self を構成する各要素 KeyValuePair kv を順に参照します。 ret.AddNoLock(Tuple.MakeTuple( kv.Key, // KeyVal…

ソースコード:items()

(メソッド dict.items に相当する)メソッド items の定義を含む、ソースコードの断片を次に示します。# IronPython-1.1.2/Src/IronPython/Runtime/Dict.cs [PythonType("dict")] public class Dict : ... IDictionary ... { ... [PythonName("items")] pub…

メソッド:dict.items

メソッド items は、写像対の集合に相当します。>>> help(dict.items) Help on method_descriptor:items(...) D.items() -> list of D's (key, value) pairs, as 2-tuplesこれを見て、2つの要素を持つタプル(キー, 値)を列挙したリストが得られるのが分か…

ソースコードの歩き方《IronPython》dict.Items

Python.use(better, src=”IronPython”) # ソースコードを散策する《記事一覧》 ♪改訂08/09/04

メソッド:dict.values

メソッド values は、写像における値域〔range〕に相当します。>>> help(dict.values) Help on method_descriptor:values(...) D.values() -> list of D's valuesこれを見て「値」要素を列挙したリストが得られるのが分かります。実際に、その動作を確認して…

事例:dict.values を使って

>>> dirs = dict([(e,type(getattr(dict,e))) for e in dir(dict)]) >>> for e in set(dirs.values()): print e 組み込み型 dict の属性リスト(名前空間)を見ると、この5種類で構成されているのが分かります。 《ひよ子のきもち♪2008/08/21》

ソースコード:values()

(メソッド dict.values に相当する)メソッド values の定義を含む、ソースコードの断片を次に示します。# IronPython-1.1.2/Src/IronPython/Runtime/Dict.cs [PythonType("dict")] public class Dict : ... IDictionary ... { ... [PythonName("values")] …

関連記事

→ map 演算 rng VDM++《16》Map に対する演算(1)

ソースコードの歩き方《IronPython》dict.values

Python.use(better, src=”IronPython”) # ソースコードを散策する《記事一覧》 ♪改訂08/09/04

事例:dict.keys を使って

>>> dirs = dict([(e,type(getattr(dict,e))) for e in dir(dict)]) >>> s = dirs.keys() >>> s.sort(); s ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '_…

インターフェース:ICollection

ここには、次に示す典型的な C# のイディオムが記述してあります。 for (int i = 0; i Count; i++) { if (... collection[i] ...) { ... break; // 適切な処理をしたらループを抜ける } }インターフェース ICollection で規定したプロトコルに従って、添字 i…

ソースコード:keys()

(メソッド dict.keys に相当する)メソッド keys の定義を含む、ソースコードの断片を次に示します。# IronPython-1.1.2/Src/IronPython/Runtime/Dict.cs [PythonType("dict")] public class Dict : ... IDictionary ... { ... [PythonName("keys")] public…

メソッド:dict.keys

メソッド keys は、写像における定義域〔domain〕に相当します。>>> help(dict.keys) Help on method_descriptor:keys(...) D.keys() -> list of D's keysこれを見て「キー」要素を列挙したリストが得られるのが分かります。実際に、その動作を確認してみま…

関連記事

→ map 演算 dom VDM++《16》Map に対する演算(1)

ソースコードの歩き方《IronPython》dict.keys

Python.use(better, src=”IronPython”) # ソースコードを散策する《記事一覧》 ♪改訂08/09/04

組み込み関数:str()

ここで、dict.__str__ のヘルプ情報を確認します。>>> help(dict.__str__) Help on wrapper_descriptor:__str__(...) x.__str__() str(x)これを見て、dict.__str__ は、組み込み関数 str の動作を規定しているのが分かります。実際に、その動作を確認してみ…

関連記事

__str__ → ハッシュ表を出力する

dict 型のリテラル表現

dict 型は(文字どおりの)リテラル表現が可能です。つまり、ありのままの構造を表現するだけで、そのインスタンスが得られます。IronPython のソースコードを理解するための布石として、実際に、その動作を確認してみましょう。>>> {} {}括弧 {} を評価する…