関数の引数について混乱しました。
通常のpythonの関数だと、以下のように記載するとエラーが出ます。(納得します。なぜなら引数の型がちがうので。)
python
def f1(x): return (x + 2) a = [1,2,3]f1(a)
結果 TypeError: can only concatenate list (not "int") to list
ですが、ここでnumpyのarrayを引数にすると関数が動いています。
python
def f1(x): return (x + 2) a = np.array([1,2,3])f1(a)
結果: array([3, 4, 5])
個人的には、引数の型(想定しているのは int型の値1つ)が違うので、最初のようにエラーが出るかと思っているのですが、エラーが出ずに、関数が動いて結果がでています。
この部分の仕組というか理由が知りたいのですが、ご存知のかたいらっしゃいましたらご教示いただけませんでしょうか?
ここはおまじないとして覚えるものとなかば諦めているのですが、どうにもこうにも納得行かず気持ち悪くて困っております。
0 コメント