2021年3月21日のブックマーク (2件)

  • Python♪関数に引数で渡された変数の変更が、関数の外側に与える影響。

    関数の引数(ひきすう)は、関数名の後ろの()の中に記載した変数や値のことで、引数により、関数内部にデータを渡すことができます。しかし、関数の内部でこの値を変更したときに、関数の外部にはどの様な影響があるのでしょうか。実は、それは、引数によるデータの受け渡しが「参照渡し」であることから簡単に理解できるのです。 では、早速、どのような影響が生じるのか試してみましょう。コード01では、関数test1()に引き渡された実引数x1, x2, x3はそれぞれ、[2], [2], 2です。それに対して、関数内での変数の値の変更により、関数の外で[5], [2], 2となります。つまり、関数の外に影響を与える場合と、影響を与えない場合があることがわかります。おそろしや、おそろしや~。 #コード01 def test1(x1, x2, x3): x1[0] = 5 #要素の変更 → 関数の外の値も連動する。

    Python♪関数に引数で渡された変数の変更が、関数の外側に与える影響。
  • Python♪「参照渡し」「浅いコピー」「深いコピー」まずは理屈抜きで覚えよう。

    「参照渡し」「浅いコピー」「深いコピー」がどんな結果になるかを、まずは理屈抜きで覚えましょう。数値型、タプル型、文字列、リスト、ディクショナリ、セットがどんな風になるのかを具体的に細かく説明した記事は、なかなか見つけられませんでしたので、この記事で説明します。 さて、「参照渡し」「浅いコピー」「深いコピー」は、きちんと理解していなければ怖いです。コード01, 出力01はよく目にする例題です。a = [1]とlistを代入し、b = aで、bも[1]となります。でも、aの内容を変えると、bの内容も変わってしまうのです。aとbは連動しています。 #コード01 a = [1] b = a print('a, b = ', a, b) a[0] = 2 print('a, b = ', a, b) #出力01 a, b = [1] [1] a, b = [2] [2] 一方、listではなく数値型

    Python♪「参照渡し」「浅いコピー」「深いコピー」まずは理屈抜きで覚えよう。