「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python で整数を参照渡しできますか?

Python で整数を参照渡しできますか?

2024 年 11 月 14 日公開
ブラウズ:494

Can You Pass Integers by Reference in Python?

Python での参照による受け渡し: 概要と回避策

Python ではすべてが値によって渡されると思われていることが多く、プログラマは疑問に思っています。参照渡しする方法がある場合。この記事では、参照によって整数を関数に渡す複雑さを調査し、実用的な回避策を提供します。

整数の不変性

Python の渡しと比較したくなるかもしれませんがJava の参照型の参照渡しに対する値の動作を変えるには、Python では整数が不変であることに注意することが重要です。これは、整数の値を直接変更できないことを意味します。

回避策: コンテナの使用

解決策の 1 つは、リストなどのコンテナ内で整数を渡すことです。変更される。たとえば、次のコードを考えてみましょう:

def change(x):
    x[0] = 3

x = [1]
change(x)
print(x)

ここでは、整数がリストにラップされ、変更関数に渡されます。関数内で、リストの要素が変更され、元の整数が効果的に変更されます。

変更された値を返す

もう 1 つのアプローチは、関数が変更された値を返すようにすることです。これを元の変数に割り当てることができます。これを以下に示します:

def multiply_by_2(x):
    return 2*x

x = 1
x = multiply_by_2(x)

この場合、multiply_by_2 関数は変更された値を返し、その値が x.

ベスト プラクティス

に格納されます。上記の回避策により参照渡しの動作をエミュレートできますが、次の最善策を考慮することが重要です。実践方法:

  • コンテナは混乱を招き、不必要な複雑性をもたらす可能性があるため、慎重に使用してください。
  • 可能であれば、変更された値を返すことをお勧めします。
  • 次のような関数は明確に文書化してください。混乱を避けるために、次の回避策を利用してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3