Open Source Magazine vol.2を読んでCSS3を使ってみようと見てたらごりごり出てきたんでそのうちもっかい調べ直そう...。
文字列を空白(切り出し文字)単位で切り出すにはstr.split([ separator[, maxsplit ]])(Operations on strings)を使う。maxsplitは切り出された文字列の数ではなく、切り出す回数、なので2とか指定すると3つの文字列に切り出される。切り出す回数が切り出し文字の数より少ないと最後の文字列に余った分がつっこまれる形になる。
"test abc 123".split(' ', 2) → ['test', 'abc', '123'] "test abc 123".split(' ', 1) → ['test', 'abc 123']
rubyみたいに自動的に後ろにつめる方法は無いものか...。
前にクラスオブジェクトのクラス名を確認する方法は、'a'というクラスオブジェクトでは「a.__name__」と書いたけど間違ってた。
__name__でクラス名を確認できるのは、それがクラスのエイリアスである場合で、クラスオブジェクトの場合は__class__で確認できる。
別名である場合というのは、datetimeモジュールのdateクラスを例にとると、以下のように宣言されたdate_aliという変数がdateクラスの別名となる。
date_ali = datetime.date
この場合、「date_ali.__name__」とすると本当のクラス名である「date」が返る。なお、dateクラス自体は__class__という属性を持たない。そして、以下のように引数を与えてインスタンスを返させると、クラス名の取得方法は異なる。
dat = datetime.date(2006,1,13)
この場合,「dat.__class__」とするとdatのクラス名が返る。
要は、エイリアスとインスタンス生成が記述的に近くてまぎらわしいという話でした。ここでクラスのアクセスの件だけ書いてるけどそもそも根本的に違うし。