MyEnigmaスマートフォン用の表示で見るMyEnigmaとあるエンジニアのブログです。C++を読んで心に響いたことを記事にまとめました。Pythonも発売されています。心に響いたことをメモとして残しておきたいと思います。Pythonのランタイムの種類Pythonには、標準のCで実装されたCPython以外にも下記のような実装があります。Wikipedia自分の得意な言語と上手く連携できるとより便利ですね。プライベート属性はアンダーバーを2つ先頭におくPythonは厳密にはクラスのプライベート属性は無いようですが、アンダーバーを2つ先頭に置くことで、プライベート属性を表すことができます。Pythonにおけるプライベート属性は下記の記事が参考になります。woodyring.blog.so-net.ne.jpd.hatena.ne.jpd.hatena.ne.jpリストや文字列の空判定にlenなどは使わない下記のように,リストや文字列が空の時はif文にそのまま入れるとFalseが返る機能を使いましょう。ありますが、そのために良く使用されるのがmapやfilterです。Pythonでは、リスト内包表記のforをmapの代わりに、ifをfilterの代わりに使うことを推奨しています。0から100の偶数リストを取得する場合には下記のようなリスト内包表記を使います。0]ちなみにリスト内包表記は、for文などに比べて、非常に高速に処理できるらしいです。同時にリストの添字の数字も取得したい場合があります。そんな時は、enumerateを使うと便利です。Snippets下記のようにリストの中身と添字を同時に取得できます。下記のように位置で引数を指定することもできますが、CalcHoge(10,5,200,10)下記のように、ちゃんとキーワードで引数を与えると、どのようなパラメータで値を与えたのかがわかりやすくなります。CalcHoge(10,5,time=200,length=10)どんなクラスオブジェクトでも__dict__ですべてのフィールド辞書にアクセスできるPythonのすべてのクラスオブジェクトは__dict__というメンバ変数を持っており、これは、そのクラスが持っているフィールド辞書、つまり、メンバ変数やメソッドを辞書形式で保持しています。多くのメソッドとメンバ変数を有していることがわかります。複雑なクラスオブジェクトの中身を確認するのに便利ですね。計算時間がかかるPythonプログラムを最適化したい場合、プロファイルを取ることが重要です。そんな時に便利なのが、Pythonの標準ライブラリであるcProfileです。(ただOSによっては、別途インストールが必要なようです。ドキュメントpythonのcProfileを使ってみる。下記のようにcProfileの中で対象のスクリプトを起動するだけです。計算時間が長くかかったメソッドが順番に表示されます。Supportersもしこの記事が参考になり、ブログをサポートしたいと思われた方は、こちらからよろしくお願いします。はてなブログProとあるエンジニアのブログです。Page月別アーカイブスポンサーリンクスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。