、Pythonのスタイル
Pythonのは、Pythonが維持しやすい、読みやすくなります明確かつ均一なスタイルに付着するように設計されており、多数のユーザー、言語の広い範囲の使用によって歓迎されます。
設計者は、一般的な指針となる原則を開発するときに限り、それを修正するための最良の方法があるとして、特定の問題のために、ということです。そこ好ましく選ぶ-とあるべき:.これは表現され(パイソンの禅と呼ばれる)、Pythonのモットーのティム・ピーターズによって書かれて 、それを行うための唯一の方法--obvious 、これはちょうどあるPerlの言語(他も同様の特徴高度な動的言語)複数の方法があります(中央のアイデアTMTOWTDI )それを行うにはまったく逆を。
Pythonの作者は、(例えば、悪いプログラミングの練習をする、デザインは非常に限定的な構文を意図した文の場合、次の行の右にインデントされていない)をコンパイルすることはできません。1つの非常に重要なのは、Pythonのですインデントルール。
そして、の差(Cなど)他の言語の大部分がモジュールの境界は、完全にこのラインの位置の各行の最初の文字によって決定された(C言語は、中括弧の対であるということである{}クリアします)モジュールの境界を固定していない、と文字の位置とは何の関係も。これは、論争を引き起こしました。それは、言語、文法的意味と言語から分離した文字の配置のこの種の誕生は、かつてプログラミング言語の進捗状況を検討して以来、C。しかし、プログラマを強制することであることは否めないインデント、Pythonは本当にプログラムをより明確にし、美しくなります(すべての場所は、関数定義などのためとあれば、モジュールを使用する必要がありますを含みます)。
二、Pythonのデザインの方向
Pythonのデザイン哲学は、「エレガント」「クリア」、である「シンプル」。したがって、Pythonの開発者にコンセプト「いつも同じことを行うには、いくつかの方法があります」のPerl言語は、通常は耐え難いです。Pythonの開発者の哲学は「やり方で、最高のことを行うための唯一の方法である。」です Python言語の設計では、さまざまなオプションに直面した場合には、Pythonの開発者は、一般的に派手な構文を拒否し、その選択はほとんど、あるいはまったくあいまいな文法とは明らかです。そのため、設計コンセプトの違いにより、Pythonのソースコードは、一般的にはPerlよりも読みやすいを持っていると考えられ、大規模なソフトウェア開発を支援することが可能です。これらのガイドラインは、Pythonのモットーと呼ばれています。Pythonのではインタプリタインポートを実行するには、これは完全なリスト内で達成することができます。
Pythonの開発者は時期尚早かのマイナーな最適化を避けるようにしてください。ランの非必須部品の数のために速くパッチは、通常のPythonに組み込まれていません。だから、多くの人は、Pythonが遅いと思います。しかし、二十から八の法則によると、ほとんどのプログラムは、スピードを要求しません。非常に高速な要件のいくつかのケースでは、Pythonの設計者は、プログラムのこの部分を書き換えるC / C ++言語を使用してJIT技術を使用する傾向があります。JIT技術が利用可能であるPyPy。
Pythonは完全にオブジェクト指向言語です。機能、モジュール、数値、文字列はオブジェクトです。そして、完全にソースコードの有益な再利用性を高める、継承、オーバーロードし、得られた、多重継承をサポートしています。Pythonはオーバーロードされた演算子と動的な型をサポートしています。機能設計のための伝統的な関数型プログラミング言語はPythonとLispの相対は、限られたサポートを提供しています。2標準ライブラリ(functools、itertools)が提供ありハスケルとStandard MLは関数型プログラミングツールで証明。
Pythonはおおよそ「に分類することができるが、スクリプト言語」(スクリプト言語)が、実際にはのような大規模なソフトウェア開発プログラムの数はZope、エムネットとBitTorrentは、Googleはまた、広く、それを使用しています。Pythonの支持者は、「スクリプト言語」とは、シェルスクリプトなどの単純なプログラミングタスクのための言語のみを指しているため、高レベルの動的なプログラミング言語、それを呼び出すことを好むのVBScriptおよび他のプログラミング言語は、単純なタスクを処理することができ、およびすることはできませんPythonのパー。
Pythonの自体が拡張できるように設計されています。すべての特徴と機能は、コア言語に統合されるわけではありません。Pythonは豊富な提供APIプログラマが簡単に使用できるようにし、ツールをC言語、C ++拡張モジュールを書くために、Cythonを。Pythonのコンパイラ自体は、他のプログラムのスクリプト言語を必要に統合することができます。そのため、多くの人々はまた、「接着剤言語」(グルー言語)としてPythonを使用しています。他の言語で書かれたPythonプログラムを使用することを統合し、パッケージ化されます。高いパフォーマンス要件C ++で書かれた、このようなGoogleのエンジンとしてGoogleの中の多くのプロジェクトでは、その後のPythonやJava /ゴーで適切なモジュールを呼び出します。「Pythonのテクニカルマニュアル著者」マルテッリ(アレックスマルテッリ)、言った:それは言うのは難しいのです」しかし、2004年には、Pythonは持っているGoogleは 内部を使用して、Googleは多くのPythonの専門家を募集しますが、その前のPythonを使うことにしました彼らの目的は、Pythonどこ我々はできる、C ++にある私たちは、しなければならない制御ハードウェアの場合に使用してC ++の迅速な開発時間で、Pythonの使用を。」
第三に、基本的な文法
設計目標の1つは、可読性の高いのためのPythonコードを作成することです。これは、一般的に、設計時に使用される英語の単語や句読点他の言語を利用することで、そのコードは清潔で美しく見えます。他の静的なC、繰り返される必要がパスカル宣言書、などの言語もその構文とは異なり、頻繁に特殊な状況と予想外があります。
開発者が違反に渡そうとするPythonのインデント手続規則は、良いプログラミング習慣を開発するプログラマを強制するためにコンパイルすることはできません。Python言語、代わりに中括弧またはいくつかのキーワードを使用しての文(オフ側のルール)のブロックを開始し、終了インデントを使用します。インデントを減らしながらインデントは、ステートメントのブロックの開始を示し増やし、exit文ブロックは述べています。インデントは構文の一部となりました。たとえば、if文:のpython3
PEPの下で、我々は、(4つのスペース実際の調製におけるスペースの数をカスタマイズすることができるが、インデントの各レベル間のスペースの同じ数を満たすために、どのように明確な規定を)インデントの各レベルを表すために4つのスペースを使用しなければなりません。タブ文字とが、他の通過コンパイルすることができるスペースの数を使用しますが、コーディング標準を満たしていません。サポートタブ文字とスペースの他の数は非常に古いPythonプログラムと問題のいくつかの編集プログラムと同じように互換性があります。
第四に、よく知られているアプリケーション
Digwebs-のWebアプリケーションフレームワーク
Zopeの -アプリケーションサーバー
Ploneの -コンテンツ管理システム
Webアプリケーションフレームワークの急速な発展を奨励Django-
Uliweb -軽量のWeb開発フレームワークの人々
迅速に開発するための別のWebアプリケーションフレームワークをTurboGears-
ツイスト - PythonのWebアプリケーションフレームワーク
PythonのウィキペディアロボットFramework- MediaWikiのロボットプログラム
ウィキに書かれたMoinMoinWiki- Pythonプログラム
フラスコ -マイクロPythonのWebフレームワーク
ノン・ブロッキングサーバーtornado-
マイクロWebpy- PythonのWebフレームワーク
マイクロボトルPythonのWebフレームワーク
開発のためのPythonのEVE-オンラインゲームEVE広範な使用
Redditに - ソーシャル共有サイト
Dropboxの - ファイル共有サービス
TurboGearsの - 急速な発展のために別のWebアプリケーションフレームワーク
ファブリック - Linuxホストの数百または数千を管理するために使用するライブラリ
Tracの - Pythonのバグ管理システムを使用して書かれました
Mailmanの - Pythonのメーリングリストソフトウェアで書かれました
メザニン - ジャンゴで書かれたベースのコンテンツ管理システム
ブレンダー - CとPython開発されたオープンソースの3Dグラフィックスソフトウェア