SIXはpython2とのpython3互換性のためのライブラリです。
それは、Python 2とPython 3に一緒に仕事をしなければならないようにコードを変更せずに存在します。それは言われているが、それは簡単にPythonコード2を実行することができます参照ライブラリにはPython 3に意味するものではありません。
実際、SIXはpython2と3の差の関数として再定義された、例えば、辞書のすべての主要な機能をキャプチャ:Python2はで.iterkeysです()
(中のpython3で.keysです)
SIXにsix.iterkeys(辞書)(もちろん、対応する機能のオリジナルバージョンを使用することもできる)であります
あなたがかどうかのpython3 Python2で実行することができないコードを書く場合には、SIXライブラリを残しました。互換性を追求するために熱心ではない、あなたはライブラリを使用する必要はありません。
インストール:
https://github.com/benjaminp/six/releases
steup.pyを解凍するためにダブルクリックします。
使用
インポート6
後pyhton2 / 3コードにコンパチブルSIXを書き込むために設け構文に従って書かれました。
six.PY2 / six.PY3:コンパイラのバージョンを確認python2 / 3であります
以下は、SIX互換性のある構文によって提供されています。
定数定義:
six.class_types
クラスの可能なタイプ。古いクラスと新しいクラスが含まれているのPython 2では、。Pythonの3では、これは単に新しいクラスです。
six.integer_types
可能な整数型。パイソン2において、それが同じ整数で長いまたはINT、Pythonの3です。
six.string_types
テキストデータの可能なタイプ。これはbasestring 3パイソン2()とPythonのSTR端にあります。
six.text_type
これは、タイプ(ユニコード)テキストデータを示します。これは、3のstrのPython 2とPython(Pyhon3テキストデータは、デフォルトではUnicodeテキストデータであり、統合されている)でのUnicode()です。
six.binary_type
バイナリデータのタイプの代表的。これは、Python 2 STRとPython 3バイトです。
six.MAXSIZE
そのような容器としてリストまたは辞書の最大サイズ。これは、Python 2.6に相当以降sys.maxsizeの(3.xのを含む)です。このsys.maxintのPythonの2は非常に類似しているが、同一ではないことに注意してください。整数型の長さだけメモリサイズによって制限されるため、パイソン3には直接相当するsys.maxintありません。
組み込み関数の定義
1、six.get_unbound_function(メタ)
メタ得る非結合方法。Pythonの3では、非結合方法は存在しないので、この関数は単にメタ不変返します。使用例:
6インポートget_unbound_functionから
クラスX(オブジェクト):
デフ方式(自己):
パス
method_function = get_unbound_function(X.method)six.get_method_function(メタ)
2、six.get_method_self(メタ)
結合メタ自己を得る方法。
3、six.get_function_closure(FUNC)
これは、Python 2.6+とPython 2.5 FUNCと同等です.__ closure__ func.func_closureに
4、six.get_function_code(FUNC)
コードオブジェクトに関連するFUNCを取得します。これは、Python 2.6+とPython 2.5 FUNC .__ func.func_codeでcode__に相当します。
5、six.get_function_defaults(FUNC)
FUNCに関連付けられたデフォルトのタプルを取得します。これは、Python 2.6+とPython 2.5 FUNC .__ func.func_defaultsでdefaults__に相当します。
6、six.get_function_globals(FUNC)
グローバル関数を取得します。これは、Python 2.6+とPython 2.5 FUNC .__ func.func_globalsでglobals__に相当します。
7、six.next(IT)six.advance_iterator(IT)
イテレータその中に次の項目を取得します。反復子が最後に到達した場合、それが呼び出すとStopIterationにつながります。パイソンit.next()2とPython 3次(IT).Python 2.6以降で同等のは次の関数を構築し、そのためだけ互換性のあるバージョンとPython 2.5以下で必要な機能である必要があります。
8、six.callable(OBJ)
あなたがobjを呼び出すことができるかどうかを確認してください。呼び出し可能なマークが必要のバージョン6を使用している場合のみ、Pythonの3.0または3.1をサポートし、Pythonの3.2で返されました。
9、six.iterkeys(字典、** kwargsから)
辞書のキー反復子を返します。2 Pythonでdictionary.iterkeys()と3 dictionary.keysパイソン()に相当します。kwargsからは、基礎となるメソッドに渡されます。
10、six.itervalues(字典、** kwargsから)
イテレータ辞書値を返します。2 Pythonでdictionary.itervalues()と3 dictionary.valuesパイソン()に相当します。kwargsからは、基礎となるメソッドに渡されます。
11、six.iteritems(字典、** kwargsから)
イテレータ辞書プロジェクトを返します。2 Pythonでdictionary.iteritems()と3 dictionary.itemsパイソン()に相当します。kwargsからは、基礎となるメソッドに渡されます。
12、six.iterlists(字典、** kwargsから)
コールdictionary.iterlistsパイソン2()またはPythonで3 dictionary.lists()。Pythonは、元のマッピングタイプような等価ではない。この方法は、このような多値WERKZEUGの辞書として使用することが意図されています。kwargsからは、基礎となるメソッドに渡されます。
13、six.viewkeys(辞書)
辞書のキーによってビューを返します。それは、Python 2.7 dict.viewkeys()と3 dict.keysパイソン()と等価です。
14、six.viewvalues(辞書)
値ディクショナリビューを返します。それは、Python 2.7 dict.viewvalues()と3 dict.valuesパイソン()と等価です。
15、six.viewitems(辞書)
辞書プロジェクトをビューに戻ります。それは、Python 2.7 dict.viewitems()と3 dict.itemsパイソン()と等価です。
16、six.create_bound_method(FUNC、OBJ)
メソッドのオブジェクトラッパーFUNCとOBJに結合を返します。types.MethodTypeオブジェクトを返すのPython 2とPython 3、オン。Pythonの2で、MethodTypeコンストラクタは、転送OBJクラスを必要とする、ラッパー関数の存在理由。
17、six.create_unbound_method(FUNC、CLS)
結合していないオブジェクトラッパー関数を返す方法。パイソン2に、それはtypes.MethodTypeオブジェクトを返します。Pythonの3では、この方法は、結合していない存在せず、このパッケージは、単にFUNCを返します。
18、クラスsix.Iterator
小さなイテレータクラスの製造のために。その目的は、サブクラスと__next__方法を提供することにあります。次:のPython 2、イテレータの方法があります。それは__next__表します。たぶん、あなたは次のちょうどエイリアスは__next__することができます。しかし、それは__next__サブクラス深刻な影響を再定義します。Pythonの3のイテレータは空です。(実際には、それだけで対象と名付けられています。)
SIXの機能は、ここで説明します。その公式サイトをご覧くださいより互換性SIX構文を習得するには
更新はgithubのとSIXライブラリ自体の提案で提供されています。あなたはSIXで問題が発生した場合、願いはgithubの上の問題を提唱します。
SIXはpython2とのpython3互換性のためのライブラリです。
それは、Python 2とPython 3に一緒に仕事をしなければならないようにコードを変更せずに存在します。それは言われているが、それは簡単にPythonコード2を実行することができます参照ライブラリにはPython 3に意味するものではありません。
実際、SIXはpython2と3の差の関数として再定義された、例えば、辞書のすべての主要な機能をキャプチャ:Python2はで.iterkeysです()
(中のpython3で.keysです)
SIXにsix.iterkeys(辞書)(もちろん、対応する機能のオリジナルバージョンを使用することもできる)であります
あなたがかどうかのpython3 Python2で実行することができないコードを書く場合には、SIXライブラリを残しました。互換性を追求するために熱心ではない、あなたはライブラリを使用する必要はありません。
インストール:
https://github.com/benjaminp/six/releases
steup.pyを解凍するためにダブルクリックします。
使用
インポート6
後pyhton2 / 3コードにコンパチブルSIXを書き込むために設け構文に従って書かれました。
six.PY2 / six.PY3:コンパイラのバージョンを確認python2 / 3であります
以下は、SIX互換性のある構文によって提供されています。
定数定義:
six.class_types
クラスの可能なタイプ。古いクラスと新しいクラスが含まれているのPython 2では、。Pythonの3では、これは単に新しいクラスです。
six.integer_types
可能な整数型。パイソン2において、それが同じ整数で長いまたはINT、Pythonの3です。
six.string_types
テキストデータの可能なタイプ。これはbasestring 3パイソン2()とPythonのSTR端にあります。
six.text_type
これは、タイプ(ユニコード)テキストデータを示します。これは、3のstrのPython 2とPython(Pyhon3テキストデータは、デフォルトではUnicodeテキストデータであり、統合されている)でのUnicode()です。
six.binary_type
バイナリデータのタイプの代表的。これは、Python 2 STRとPython 3バイトです。
six.MAXSIZE
そのような容器としてリストまたは辞書の最大サイズ。これは、Python 2.6に相当以降sys.maxsizeの(3.xのを含む)です。このsys.maxintのPythonの2は非常に類似しているが、同一ではないことに注意してください。整数型の長さだけメモリサイズによって制限されるため、パイソン3には直接相当するsys.maxintありません。
組み込み関数の定義
1、six.get_unbound_function(メタ)
メタ得る非結合方法。Pythonの3では、非結合方法は存在しないので、この関数は単にメタ不変返します。使用例:
6インポートget_unbound_functionから
クラスX(オブジェクト):
デフ方式(自己):
パス
method_function = get_unbound_function(X.method)six.get_method_function(メタ)
2、six.get_method_self(メタ)
結合メタ自己を得る方法。
3、six.get_function_closure(FUNC)
これは、Python 2.6+とPython 2.5 FUNCと同等です.__ closure__ func.func_closureに
4、six.get_function_code(FUNC)
コードオブジェクトに関連するFUNCを取得します。これは、Python 2.6+とPython 2.5 FUNC .__ func.func_codeでcode__に相当します。
5、six.get_function_defaults(FUNC)
FUNCに関連付けられたデフォルトのタプルを取得します。これは、Python 2.6+とPython 2.5 FUNC .__ func.func_defaultsでdefaults__に相当します。
6、six.get_function_globals(FUNC)
グローバル関数を取得します。これは、Python 2.6+とPython 2.5 FUNC .__ func.func_globalsでglobals__に相当します。
7、six.next(IT)six.advance_iterator(IT)
イテレータその中に次の項目を取得します。反復子が最後に到達した場合、それが呼び出すとStopIterationにつながります。パイソンit.next()2とPython 3次(IT).Python 2.6以降で同等のは次の関数を構築し、そのためだけ互換性のあるバージョンとPython 2.5以下で必要な機能である必要があります。
8、six.callable(OBJ)
あなたがobjを呼び出すことができるかどうかを確認してください。呼び出し可能なマークが必要のバージョン6を使用している場合のみ、Pythonの3.0または3.1をサポートし、Pythonの3.2で返されました。
9、six.iterkeys(字典、** kwargsから)
辞書のキー反復子を返します。2 Pythonでdictionary.iterkeys()と3 dictionary.keysパイソン()に相当します。kwargsからは、基礎となるメソッドに渡されます。
10、six.itervalues(字典、** kwargsから)
イテレータ辞書値を返します。2 Pythonでdictionary.itervalues()と3 dictionary.valuesパイソン()に相当します。kwargsからは、基礎となるメソッドに渡されます。
11、six.iteritems(字典、** kwargsから)
イテレータ辞書プロジェクトを返します。2 Pythonでdictionary.iteritems()と3 dictionary.itemsパイソン()に相当します。kwargsからは、基礎となるメソッドに渡されます。
12、six.iterlists(字典、** kwargsから)
コールdictionary.iterlistsパイソン2()またはPythonで3 dictionary.lists()。Pythonは、元のマッピングタイプような等価ではない。この方法は、このような多値WERKZEUGの辞書として使用することが意図されています。kwargsからは、基礎となるメソッドに渡されます。
13、six.viewkeys(辞書)
辞書のキーによってビューを返します。それは、Python 2.7 dict.viewkeys()と3 dict.keysパイソン()と等価です。
14、six.viewvalues(辞書)
値ディクショナリビューを返します。それは、Python 2.7 dict.viewvalues()と3 dict.valuesパイソン()と等価です。
15、six.viewitems(辞書)
辞書プロジェクトをビューに戻ります。それは、Python 2.7 dict.viewitems()と3 dict.itemsパイソン()と等価です。
16、six.create_bound_method(FUNC、OBJ)
メソッドのオブジェクトラッパーFUNCとOBJに結合を返します。types.MethodTypeオブジェクトを返すのPython 2とPython 3、オン。Pythonの2で、MethodTypeコンストラクタは、転送OBJクラスを必要とする、ラッパー関数の存在理由。
17、six.create_unbound_method(FUNC、CLS)
結合していないオブジェクトラッパー関数を返す方法。パイソン2に、それはtypes.MethodTypeオブジェクトを返します。Pythonの3では、この方法は、結合していない存在せず、このパッケージは、単にFUNCを返します。
18、クラスsix.Iterator
小さなイテレータクラスの製造のために。その目的は、サブクラスと__next__方法を提供することにあります。次:のPython 2、イテレータの方法があります。それは__next__表します。たぶん、あなたは次のちょうどエイリアスは__next__することができます。しかし、それは__next__サブクラス深刻な影響を再定義します。Pythonの3のイテレータは空です。(実際には、それだけで対象と名付けられています。)
SIXの機能は、ここで説明します。その公式サイトをご覧くださいより互換性SIX構文を習得するには
更新はgithubのとSIXライブラリ自体の提案で提供されています。あなたはSIXで問題が発生した場合、願いはgithubの上の問題を提唱します。