Pythonが関数でタプルを定義できないのはなぜですか?
Python 3.0以降、パックされていないタプルを関数のパラメーターとして定義することはできなくなりました(PEP3113)。これは、関数を次のように定義しようとした場合を意味します-
def fn(a,(b,c)): pass
Pythonインタープリターは、タプルの最初のブラケットに構文エラーを表示します。代わりに、タプルオブジェクトをパラメーターとして定義し、関数内で解凍します。次のコードでは、2つのポイントのx座標とy座標を表す2つのタプルオブジェクトが、2つのポイント間の距離を計算するためのパラメーターとして渡されます。計算する前に、タプルオブジェクトはそれぞれのx座標とy座標で解凍されます。
def hypot(p1,p2): x1,y1=p1 x2,y2=p2 import math hyp=math.sqrt((x1-x2)**2+(y1-y2)**2) return hyp x=(10,10) y=(20,20) print ("hyp=",hypot(x,y))
-
実行時にPython関数をどのように定義できますか?
タイプモジュールをインポートし、その関数types.FunctionType()を次のように使用することで、Python関数を定義し、実行時に実行できます。 このコードは、示されているようにPythonプロンプトで機能します。まず、typesモジュールをインポートします。次に、コマンドdynf=…;を実行します。次に、関数dynf()を呼び出して、次のような出力を取得します >>> import types >>> dynf = types.FunctionType(compile('print "Really Works"
-
Pythonタプル
Pythonでは、タプルは順序付けられたコレクションです。 および不変 。つまり、タプルにアイテムを追加したり、タプルからアイテムを削除したりすることはできません。 括弧()を使用してタプルを作成します および少なくとも1つのコンマ( , ) 。 タプルは、スライスの結果もタプルになることを除いて、リストと同じようにインデックス付けおよびスライスできます。 タプルを作成する方法 colorsTuple = (red, green, blue) print(colorsTuple) 出力: (red, green, blue) 1つのアイテムのみでタプルを作成する タプルには少なくと