re:annkara

日々学んだことを書き留めておく。

初めてのPythonに再挑戦。

dir関数
dir(module)

モジュール内で利用できる属性のリストを返す。

名前空間

変数(名前)の集合のこと。 Pythonはモジュール毎に名前空間が設定されていると言える。

Pythonにおける変数

変数は代入されることで初めて作成される。 また、変数に保持されるのはオブジェクトのリファレンスであり、 オブジェクト自身にオブジェクトの型情報や、被参照数(リファレンスカウンタ)、値を保持している。 このリファレンスカウンタがゼロになったさいに、ガーベージコレクタによって、 オブジェクトのメモリスペースが解放される。

静的型付言語では、変数にも型情報を保持していることになるのかな??

同等と同一

同等とは、オブジェクトの値が同じであること。 ==演算子を使用。
同一とは、変数のリファレンスが同じであること。 is演算子を使用。

ディクショナリを用いての文字列フォーマット
"" %(id)s : %(name)s " % {"id":"0001", "name":"taro"}""

キーを文字列に埋め込んで、フォーマットすることも可能。

ディクショナリについて

写像とは、要素にキーが割り当てられたオブジェクトのこと。
リストは、オブジェクトリファレンスの配列であるが、 ディクショナリは、オブジェクトリファレンスの順不同のテーブル。
ハッシュテーブルで実装されている。
リファレンスが保持されるという点では、一緒。

shallow copydeep copy

shallow copy
[:]やdict.copy()でコピーされるのは、トップレベルでのオブジェクトのみ。 なので、ネストされていた場合、そのオブジェクトのコピーはされない。

deep copy
copy.deepcopy()を利用すると、ネストされたオブジェクトリファレンスもコピーされる。 が、あまり使用しないらしい。