PythonのPythonの開発実際の戦闘の操作と自動変数のメンテナンス:今日、この記事では、今日のことを説明するクラウド・コンピューティングの開発チュートリアルのいくつかを共有することです。
Pythonの学習プロセスは、大量のデータを使用しますが、それは操作が簡単で、これらのデータは、単純な名前を使用する必要がありますが、次のプログラムで簡単に参照を表します。
これは、変数のデータ(値)の名前を表すことです。簡単に言えば、変数データは、名前を与えることです
変数の命名名:
英数字、アンダースコア、およびキーワードの大文字と小文字を区別を使用することはできません、数字で始めることはできません。
命名規則:
-
単一の変数名は、アンダースコア(_X)で始まるとモジュールのインポート*声明からインポートされることはありません
-
変数名(前と後の下線X-)システム定義の変数名がインタプリタに特別な意味を持っていています
-
二重のアンダースコアで始まるが、二重下線変数名(__X)の終わりには、クラスのローカル変数ではありません
-
対話モード動作により、単一の変数名に下線(_)式の最終結果を保存します
Pythonの命名規則の概要:
モジュール名:などad_stats.pyなど小文字、_セグメンテーションとの言葉、間
パッケージ名:モジュール名と同じ
クラス名:単語大文字、などAdStatsのconfigutilなど
グローバル変数名:などUMBER COLOR_WRITEなど、大文字、言葉で_セグメンテーション、間
通常の変数:小文字の間、_セグメンテーションとの言葉は、そのようなthis_is_a_varなど
_そもそも、そのような_priceの_instance_varのような他の一般的な変数、:変数の例
プライベートインスタンス変数(外部からのアクセスが与えられている):__(2つのアンダースコア)、および他の変数で始まる、通常のように
__private_var
独自の変数:__始まり、エンド__は、通常、このように名付けられていない独自の変数を、PYTHON
__doc__ __class_
変数の割り当て:
プロセスの変数の宣言と定義
シングル変数の割り当て:
#!は/ usr / binに/ pythonの
- -コーディング:UTF-8 - -
カウンタ= 100#整数変数代入
マイル= 1000.0#フロート
名=「ジョン」#文字列
印刷カウンタ
印刷マイル
名前を印刷する
複数の変数への代入:
Pythonはあなたが同時に複数の変数を割り当てることができます。
例えば:
A = B = C = 1
上記の例は、オブジェクトは、1の値を整数を作成するために、3つの変数が同じメモリ空間に割り当てられています。
同時に複数の変数に異なる値を割り当てます。
例えば:
A、B、C = 1、2、「ジョン」
上記の例で、2つの整数は1と2が変数cに変数A及びBは、文字列オブジェクト、「ジョン」に割り当てられているオブジェクト。
:データ変数保存する方法
あなたのデータを格納するための一般的なプログラミング言語の変数を:
あなたが所定の範囲内の変数値を格納することができ、コンピュータのメモリの可変領域であり、値は変数です。
これは、変数を作成するために、メモリ内のスペースを開きます。変数のデータ型に基づいて、インタプリタは指定されたメモリを割り当て、データがメモリに記憶させることができるかを決めます。したがって、変数は異なるデータ型を指定することができ、これらの変数は整数、10進数または文字を格納することができます。
例えば、変数aを宣言した後、C言語、それは、一緒に対応するメモリ空間に開かれるこのスペースに異なる値を格納することができる、つまり、変数に異なる値を割り当てます
Pythonの変数は、メモリや他のプログラミング言語で保存されている別の方法価値があります:
Pythonでは、変数名のないタイプがありませんが、オブジェクトがあります
オブジェクトの変数名だけ参照(内部実装のポインタ)
Pythonはメインデータのみタグメモリ空間に対応する変数= 1オープン1を格納するためのスペース、= 2が再開き新しい収納スペース2、変数名の変更に再コピーされた後に空間2内の新しい場所へのポイント
同じアドレス空間は、= 1、B = 1、Bなどの2つの以上のラベルを有していてもよく、実際に同じアドレス空間にある点
アドレス空間のアドレスに変数のポイントを表示します。id(変数名)関数を使います
>>> a=1
>>> id(a)
19882304
>>> b=1
>>> id(b)
19882304
同じ値が異なる変数のために発見された割り当てる、実アドレス空間が変更されますが、変更タグされていません
参照カウント(SYS.GETREFCOUNT)内部PYTHON:
参照カウンタがどのようなものです:
参照数内のすべてのオブジェクトの内部レコードを使ってPython。内部トラッキング変数は、参照カウンタと呼ばれます。オブジェクトが作成されると、それがごみ収集され、オブジェクトが不要になったとき、それは、オブジェクトの参照カウントがゼロになる、と言うことではありません、参照カウントを作成します。(これが唯一の話の画像であり、厳密に100%正しいではありませんが、人気の理解は、多くの場合、学習するための最良の方法です)
参照カウントを増やします。
オブジェクトが作成され、(引用する)は、変数に割り当てられると、オブジェクトが参照されている技術は、1に設定されています。アプリケーションまたはオブジェクトの同じオブジェクトが他の変数に代入、または渡された関数、メソッド、またはクラスインスタンスにパラメータとして、またはウィンドウオブジェクトメンバが割り当てられているときにときに、オブジェクトへの新しい参照、又は別名、作成された(オブジェクトの参照カウントは自動的にインクリメントされます)
参照カウントを減らします:
オブジェクトへの参照が破棄されるとき、参照カウントが減少します。その範囲外の参照が、これはほとんどの場合、機能の実行の終了時に発生した場合に最も明白な例があるすべてのローカル変数が自動的に破棄され、オブジェクトの参照カウントは減少します。
変数が他のオブジェクトに割り当てられている場合、ソースオブジェクト参照技術は、自動的にデクリメント
その他の原因のオブジェクトの参照カウントの低減方法は、デルの文の使用は、変数を削除するか、オブジェクトの参照カウントは、次のような状況に削減されるとき、次のとおりです。
-
ローカル参照は、そのような関数の終わりとして、その範囲を残し
-
破壊の別名オブジェクトが表示されます
-
別名オブジェクトが別のオブジェクトに割り当てられています
-
オブジェクトは、ウィンドウオブジェクトから削除されます
-
ウィンドウオブジェクト自体が破壊され
例:
輸入SYS
=「AB」
sys.getrefcount( "AB")
第3のための3つの結果
B =「AB」
sys.getrefcount( "AB")
第二4 +1の結果
B = 0、Bの他のオブジェクトを参照(0)、「AB」のための基準の点でキャンセルされました
sys.getrefcount( "AB")
最後に参照に基づいて3つの結果-1
注:対話インタプリタにスペースを持つオブジェクトは、常に引用3であるが、スクリプト、例えば:!ます。#/ usr / bin / envをPythonの#コーディング= UTF8 FDAF輸入SYS印刷sys.getrefcount(「ABに正常に戻りますCD ")、A =" ABのCD "印刷sys.getrefcount(" ABのCD ")B =" AB CD "印刷sys.getrefcount(" ABのCD ")、C = B印刷sys.getrefcount(" ABのCD「)
ガベージコレクション:
もはや使用されるメモリのガベージコレクション機構がリリースと呼ばれています。インタプリタは、オブジェクトの参照カウントを追跡もののとしては、上述したが、ガベージコレクタは、メモリを解放する責任があります。彼はまた、参照カウントがゼロよりも大きいだけでなく、オブジェクトが破壊されることを確認する責任があるものの、ガベージコレクタは、0のオブジェクトの参照カウントを見つけるために使用される別々のコードです。特定の状況では、循環参照につながります。
あなたは、少なくとも2つのオブジェクトがまた、参照がなくなっているとして、これらの参照はまだ存在して、単独の参照カウントを示すことは十分ではありません知られ、相互に参照していたときに循環参照が発生します。Pythonのガベージコレクタは、実際にはサイクルカウンタとガベージコレクタへの参照です。オブジェクトの参照カウントの合計量が0になると、インタプリタは一時停止します、このオブジェクトと、このオブジェクトの他のオブジェクトを解放し、参照カウントの補足としてのみアクセス可能で、ガベージコレクタは慎重に(大割り当てられます同様にオブジェクトのもの)として参照カウントによって破壊されません。この場合、インタプリタは、サイクルへのすべての参照をクリーンアップしようとすると、一時停止します。