1. ホーム
  2. python

[解決済み] なぜグローバル変数は悪なのか?[クローズド]

2022-04-28 16:52:05

質問

を使用する理由を探っています。 global は、パイソン(と一般的なプログラミング)で悪い習慣と考えられています。誰か説明できますか?より多くの情報を持つリンクもまた感謝されるでしょう。

どのように解決するのですか?

これはPythonとは関係ありません。どのプログラミング言語でも、グローバル変数はよくありません。

しかし、グローバル定数 とは概念的に同じではありません。 グローバル変数 グローバル定数は全く無害です。Pythonでは、この2つの区別は純粋に慣習によるものです。 CONSTANTS_ARE_CAPITALIZEDglobals_are_not .

グローバル変数が悪い理由は、関数が隠れた(明白でない、驚くべき、発見しにくい、診断しにくい)副作用を持つことを可能にし、複雑さを増大させ、潜在的に以下をもたらすからです。 スパゲッティ・コード .

しかし、アルゴリズムの最適化、複雑性の軽減、キャッシュとメモ化、あるいは命令型コードベースに由来する構造の移植の実用性などの理由から、関数型プログラミングにおいてもグローバルステートの適切な使用(ローカルステートとミュータビリティと同様)は許容されます。

全体として、あなたの質問には多くの方法で答えることができるので、最善の策は「なぜグローバル変数は悪いのか」をググることです。いくつか例を挙げてみましょう。

もしあなたがもっと深く、なぜ副作用がすべてなのか、その他多くの啓発的なことを知りたいのであれば、関数型プログラミングを学ぶべきでしょう。