Python の文字列連結が文字列を変更しているように見えるのはなぜですか?

Linda Hamilton
リリース: 2024-10-31 02:28:02
オリジナル
1019 人が閲覧しました

Why Does Python String Concatenation Appear to Modify Strings?

Python 文字列可変性の幻想: A " " B

Python 文字列は不変であることで広く知られています。ただし、「 " b を含む、あなたが提供したコード例では、この基本的なプロパティについて疑問が生じます。この一見矛盾した動作の背後にある説明を詳しく見てみましょう。

変数の物語

文字列を変数 (a = "Dog" など) に割り当てると、メモリ内にその文字列への参照を作成するだけです。変数は文字列自体のコピーを所有または保持しません。むしろそれを指します。これは、Python における文字列の不変性の本質です。

新しいオブジェクトの魔法

あなたが言及したコードでは、" " b を書くと、不変ではありません。 a または b が指す文字列を変更します。代わりに、両方の文字列を連結した新しい文字列を作成します。この新しく作成された文字列は、元の文字列をそのまま残したまま、新しい参照に割り当てられます。

変数の再割り当て

ここで重要な点は、次のコード行です。

a = a + " " + b + " " + c
ログイン後にコピー

この行は、 a が以前に指した文字列を変更するのではなく、作成したばかりの新しい文字列を指すように a を再割り当てします。したがって、 a は連結された文字列「犬はおやつを食べる」を指しますが、元の「犬」文字列は変更されません。

結論

次のように見えるかもしれませんが、文字列「Dog」は変更されていますが、実際には、Python はプロセス全体を通じて新しい文字列を作成して割り当てています。文字列の不変性はそのまま維持され、文字列が作成されるとその内容は変更できなくなります。

以上がPython の文字列連結が文字列を変更しているように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!