Python3.0 Hacks シリーズに記事Pythonicな文字列フォーマットforamat()メソッドが公開されている。
従来文字列フォーマットには%を使用する方法とTemplateクラスを使用する方法とがあったが、3.0からは文字列オブジェクトにformatメソッドが追加された、との事
アトリビュートの埋め込みはちょっと面白いと思った。
>>> import sys >>> "Python version: {0.version}".format(sys) 'Python version: 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)]'
これは使えそう。
%演算子は,近い将来廃止されることが予告されています。Pythonicな文字列フォーマットforamat()メソッド
とあるので、formatメソッドを積極的に使った方が良いだろうか。
最後に練習問題がある。問題を引用
以下の%演算子を使った文字列フォーマットと同じものを,format()メソッドを使って書いて下さい。3行目だけを書き換えて,format()メソッドを使って同じ出力を得ることができれば正解です。Pythonicな文字列フォーマットforamat()メソッドリスト5
>>> from keyword import kwlist >>> d={'language':'Python 3.0', 'keywords':len(kwlist)} >>> "%(language)s has %(keywords)3d keywords" % d 'Python 3.0 has 33 keywords'
挑戦してみる。
バージョンは2.6環境なのでちょっと改変して、こんな感じかな
>>> from keyword import kwlist >>> d = {'language':'Python 2.6', 'keywords':len(kwlist)} >>> "{0[language]} has {0[keywords]:3} keywords".format(d) 'Python 2.6 has 31 keywords'
コメント
コメントを投稿