「オブジェクトが1つしかないことを保証するためのパターン」です。
スクリプト内で統一して扱いたいConfig系の変数などに適用されることが多いです。
Pythonの仕様とルールで対応できるので、その紹介に留めます。
Pythonは関数の外側で宣言された場合グローバルスコープになるという性質を利用します。
URL = "https://www.yahoo.co.jp"
def main():
print(URL) # => "https://www.yahoo.co.jp"
if __name__ == "__main__":
main()
省略
「関数の外で宣言し、パブリックな関数の中で変数へのアクセスを行う」ことで URL
が1つしかないことを保証できます。
ただし、関数の中で変数に代入すると上書きされてしまうので注意してください。
また、このようにSingletonな変数を宣言するときは、変数を大文字とすることが多いです。
クラスではなく仕様とルールで対応
実際にSingleton変数が使われているソース
(11行目あたりにあるRANDOM_SEED
などが相当します)