1.パイソンの特徴および利点は持っている何ですか?
A:入門プログラミング言語として、Pythonは次のような特徴と利点があります:
- 解釈
- 動的な性質
- オブジェクト指向
- コンサイスシンプル
- オープンソース
- これは、強力なコミュニティをサポートしています
2.その深いと浅いコピーのコピーの違いは何ですか?
:ディープコピーはあなたが作る場合はオブジェクト変更のコピーが元のオブジェクトに影響を与えないことを意味する別のオブジェクト、1つのオブジェクトをコピーすることです。Pythonでは、私たちは次のようにDeepCopyは()、ディープコピー、コピーインポートモジュールを実行する機能を使用します。
>>> import copy
>>> b=copy.deepcopy(a)
浅いコピーのコピーは、私たちがコピーを変更した場合ので、元のオブジェクトに影響を与えるだろう、別のオブジェクトへのオブジェクト参照を吸いました。私たちは次のように、使用することを浅いコピーを実行する()関数の機能を使用します。
>>> b=copy.copy(a)
3.リストとタプルの違いは何ですか?
A:2つの主な違いは、リストは変更可能であり、タプルは不変であるということです。例えば、以下に示すように。
>>> mylist=[1,3,3]
>>> mylist[1]=2
>>> mytuple=(1,3,3)
>>> mytuple[1]=2
Traceback (most recent call last):
File "<pyshell#97>", line 1, in <module>
mytuple[1]=2
あなたは、次のエラーが表示されます。
TypeError: ‘tuple’ object does not support item assignment
4、どのようにPythonで複数のスレッドを実装するには?
A:スレッドが軽量プロセスであり、マルチスレッド実行は、複数のスレッドに一度に私たちをことができます。
我々はすべて知っているように、Pythonはマルチスレッド言語、内蔵のマルチスレッドのツールキットです。
PythonのGIL(グローバルインタプリタロック)でシングルスレッドの実行を確実にします。
GILは、スレッドを保存し、並列に実行されているような錯覚を生成するために私たちを可能にする次のスレッド、前にいくつかのアクションを実行するためにそれを渡します。
しかし、実際には、CPU上で実行するだけでスレッドのターンは、もちろん、すべてのメモリ転送は、プログラム実行の圧力を増加します。
Pythonで継承を説明5.
A:別のクラスからクラスの継承は、それが親クラス/基本クラス/スーパークラスから継承サブクラス/派生したクラスを、呼び出されたとき。これは、すべてのクラスメンバー(属性とメソッド)を取得/継承します。
継承は、再利用コードに私たちを可能にするだけでなく、アプリケーションを作成し、維持しやすいです。Pythonは、継承、次の種類をサポートしています。
- 単一継承:基底クラスから単一のクラスの継承
- 多重継承ベースクラスからクラス継承の複数
- 多重継承:基底クラスから単一のクラスの継承、別の基本クラスから継承
- 階層継承ベースクラスから単一のクラス継承の複数
- 混血継承:混合の2種類以上の継承
6.猿パッチとは何ですか?
動作中に動的にクラスやモジュールを変更します。
>>> class A:
def func(self):
print("Hi")
>>> def monkey(self):
print "Hi, monkey"
>>> m.A.func = monkey
>>> a = m.A()
>>> a.func()
次のような結果を操作します:
Hi, Monkey
7、*引数を使用して説明してください kwargsから**の意味
のpythonでの、*引数と** kwargsからは、一般的に関数定義で使用されます。
*引数とkwargsから機能、あなたはパラメータの変数番号を渡すことができ
、発信者がいくつかのパラメータを渡しますときに、関数の定義が分からないにもかかわらず。
PS:*引数と我々はすべて遵守は、任意の名前を書くことができkwargsからちょうど習慣。
- 例1. *引数
*引数が非キーワードパラメータの変化量を受信することができるが、位置パラメータタプル(非値のペアのパラメータセット)に変換され
、次のコードに示すように、例。
def func(*args):
for i in args:
print(i)
func(1,2,3,4)
結果:
1
2
3
4
- 2. ** kwargsからの例
kwargsからは、あなたが量的キーワードを指定せずにパラメータを渡すことができます。
あなたは定量的パラメータという名前の関数を定義する必要がない場合は、使用すべき kwargsからの、および
以下の例のコードに示すように、それは、キーワードパラメータのdict(キーと値のペアのパラメータセット)に変換されます。
def func(**kwargs):
for i in kwargs:
print(i,kwargs[i])
func(a=1,b=2,c=3,d=4)
結果:
a 1
b 2
c 3
d 4
8.新しいとPythonのinitの違いは何です?
New__は静的メソッドで、__init__はインスタンスメソッドである。
New__メソッドは何もインスタンスが作成されて返されていない、と__init__戻ります。
のみ_ _new__は、CLSのインスタンスを返すとき__init__はコールバックすることができます。
あなたは、新しいインスタンスを作成するとき__new呼び出す __initインスタンスで初期化を。
9、Pythonで三項演算子を説明する
:?、しかし、我々はこれを持っている:C ++とは異なり、我々はPythonではありません、
[表現ザ・]のIF [偽の]他[trueに上]
表現は、実装Trueの場合に[真]文。それ以外の場合は、ステートメント[偽の]実行。
ここではその方法は次のとおりです。
>>> a,b=2,3
>>> min=a if a<b else b
>>> min
結果:
2
>>> print("Hi") if a<b else print("Bye")
結果:
Hi
10は、Pythonでメモリを管理する方法ですか?
Pythonは、すべてのオブジェクトとデータ構造を保持するためにプライベートヒープスペースがあります。開発者は、我々はそれにアクセスすることができないとして、それは管理で説明されています。しかし、コアAPIで、我々はいくつかのツールにアクセスすることができます。Pythonのメモリマネージャは、メモリの割り当てを制御します。
また、内蔵のガベージコレクタは、すべての未使用のメモリを再要求し、それは、ヒープスペースに適しています。