リストである定数、またはその他の変更可能なオブジェクトを持つことに関連する「落とし穴」のようなものはありますか?
現在、私のコンテキストは、呼び出しに渡される定数と関係がありますが、トピックが質問に意味のある影響を与えるとは思わないため、一般的に質問します。
次のコード例を検討してください。
#!/usr/bin/env python
# This file was not tested before posting.
import subprocess
LS_FLAGS = ['-l', '-a']
def main():
subprocess.call(['ls'] + LS_FLAGS)
if __name__ == '__main__':
main()
私がこれを尋ねるのは、関数定義の変更可能なオブジェクトから生じる問題を致命的に認識しているからです。そして、尊敬される定数への代入や突然変異を行うことは決してあってはならないことを私は理解しています。そして、その「定数」は実際には問題ではありません。私は尋ね、さらに尋ねます。偶発的な突然変異ではなく、意味的に自分自身を保護するためのいくつかの規則があるのでしょうか?