ホームページ >バックエンド開発 >Python チュートリアル >Python の面接でよくある質問は何ですか?
Python の面接でよくある質問は次のとおりです: 1. Python はどのように解釈されますか? 2. PEP8 とは何ですか? 3. Python はメモリをどのように管理しますか? 4. Python デコレーターとは何ですか? 5. 組み込みの Python は何ですか?タイプなどを提供します。
Python の面接でよくある質問は次のとおりです:無料の学習に関する推奨事項が多数あります。Python チュートリアル をご覧ください。 #(ビデオ)
1. Python とは何ですか?メリットとデメリットを簡単に説明してください。
Python は、解釈、コンパイル、対話性、およびオブジェクト指向スクリプト言語を組み合わせた、オブジェクト指向の解釈型コンピューター プログラミング言語です。
利点: オープンソース、無料、シンプル、学習しやすく、移植性があり、スケーラブルで、保守が容易で、開発効率が高い。
欠点: 実行速度が遅い、コードを暗号化できない。
2. Python はどのように解釈されますか?Python はインタープリタ言語であり、そのソース コードを直接実行できます。 Python インタプリタはソース コードを中間言語に変換し、それを実行用のマシン コードに変換します。
3. PEP8 とは何ですか?PEP8 は、プログラムをより読みやすくするための提案を提供するプログラミング仕様です。
4. Python はどのようにメモリを管理しますか?1) 参照カウントのメカニズム: Python は内部で参照カウントを使用して、メモリ内のオブジェクトを追跡します。
2) ガベージ リサイクル メカニズム: オブジェクトの参照カウントがゼロの場合、オブジェクトはガベージ コレクション メカニズムによって処理されます。
循環ガベージ リカバリにより、ループ参照オブジェクトが確実に解放されます。 。
3). メモリ プール メカニズム:
Python はメモリのガベージ コレクション メカニズムを提供しますが、未使用のメモリはオペレーティング システムに返すのではなくメモリ プールに入れられます:
Pymalloc メカニズム: Python の実行効率を高速化するために、Python ではアプリケーションと小さなメモリ ブロックの解放を管理するメモリ プール メカニズムが導入されています。
整数、浮動小数点数、リストなどの Python オブジェクトの場合、それらは独自の独立したプライベート メモリ プールを持ち、そのメモリ プールはオブジェクト間で共有されません。これは、多数の整数を割り当てて解放すると、これらの整数のキャッシュに使用されるメモリを浮動小数点数に割り当てることができなくなることを意味します。
Python デコレーターは関数であり、関数の変更を容易にする Python の独自の変更です。これにより、関数自体の関数定義を変更せずに追加関数を動的に生成できます。
5. Python デコレータとは何ですか?Python デコレーターは関数であり、関数の変更を容易にする Python の独自の変更です。これにより、関数自体の関数定義を変更せずに追加関数を動的に生成できます。
イテレータ、ジェネレータ
反復可能なオブジェクト: for-in を使用して走査できるオブジェクトはすべて反復可能なオブジェクトです。
Python では、オブジェクトに __iter__ () メソッドまたは __getitem__ がある場合、 () メソッドを使用すると、オブジェクトは反復可能 (Iterable) であると言われます。__iter__() メソッドは、for...in ループを使用してオブジェクトを走査できるようにするために使用され、__getitem__() メソッドはオブジェクトを作成するために使用されます。インスタンス内の要素には、「インスタンス名 [インデックス]」を通じてアクセスできます。言い換えれば、2 つの条件のいずれかが満たされる限り、オブジェクトは反復可能であると言えます。明らかに、List、Tuple、Dictionary、String などのデータ型はすべて反復可能です。
イテレータ: イテレータは、コレクションの要素にアクセスする方法です。 for-in を使用して走査し、next 関数を使用して反復できるオブジェクト
#Python では、オブジェクトに __iter__() メソッドと __next__() メソッドがある場合、そのオブジェクトはイテレーター ( Iterator ) と呼ばれます。 __iter__() メソッドを使用すると、for...in ループを使用してオブジェクトをトラバースできるようになり、 __next__() メソッドを使用すると、オブジェクトが next (インスタンス名) を通じて次の要素にアクセスできるようになります。注: イテレータを呼び出すには、これら 2 つのメソッドを同時に使用できる必要があります。 List、Tuple、Dictionary、String などのデータ型は反復可能ですが、next() メソッドがないため反復子ではありません。6. 関数クロージャ
自由変数を参照する関数はクロージャです。参照された自由変数は、関数が環境から離れたとしても、関数とともに存在します。
7. 配列とタプルの違いは何ですか?
配列とタプルの違い: 配列の内容は変更可能ですが、タプルの内容は読み取り専用です。さらに、タプルは辞書キーなどとしてハッシュ化できます。
8. クラス メソッドと静的メソッド
メソッド: インスタンス呼び出しを通じて、クラス内のプロパティとメソッドを参照できます
クラスメソッド: いいえインスタンスは必須です。クラス属性とクラス メソッドを呼び出すことはできますが、通常のメンバー属性とメソッドを取得することはできません。staticmethod: インスタンス化する必要はありません。クラス内のプロパティやメソッドは取得できません。完全に独立したメソッドです。
9. Python にはどのような組み込み型が用意されていますか?
整数 (int)、文字列 (str)、タプル (tuple)、ブール値 (bool)、セット (set)、リスト (list)、辞書 (dict)
10 とは何ですか辞書内包表記とリスト内包表記?
これらは、辞書やリストを簡単に作成できる構文構造です。
パラメータは値によって渡され、参照はどのように渡されますか?
Python ではすべてがクラスであり、すべての変数はオブジェクトへの参照です。参照の値は関数によって決定されるため、変更できません。ただし、オブジェクトが変更できる場合は、そのオブジェクトを変更することができます。
11. Python のラムダとは何ですか?
これは、コード内の単一の式によく使用される匿名関数です。
12. Python の pass とは何ですか?
pass は空白を表すために使用されるプレースホルダーであり、実行されません。
13. Python の浅いコピーと深いコピーの違いは何ですか?
copy.copy() 浅いコピー: オブジェクトはコピーされますが、コピーされたオブジェクトの値は依然として元のオブジェクトの値を指します (参照に相当)。コピーされたオブジェクトが変更されると、コピーされたオブジェクトの値も変更されます。
copy.deepcopy() ディープ コピー: オブジェクトをコピーするだけでなく、オブジェクト内の要素もコピーして、コピーされたオブジェクトから完全に独立した新しいオブジェクトを取得します。ただし、これには特定のオブジェクトを犠牲にする必要があります。時間と空間の量。
14. Python のモジュールとパッケージとは何ですか?
Python では、モジュールはプログラムを構築する方法です。すべての Python コード ファイルはモジュールであり、オブジェクトやプロパティなどの他のモジュールを参照できます。
大量の Python コードを含むフォルダーがパッケージです。パッケージにはモジュールとサブフォルダーを含めることができます。
以上がPython の面接でよくある質問は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。