teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2020/04/14 01:46

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -14,4 +14,4 @@
14
14
 
15
15
  モジュールに状態を持たせるなどの目的のためにモジュールの変数を変更したい場合、モジュールのトップレベルでアクセス用の関数を書くという戦略があり得ます。`set_x`関数のようなものを定義して、`global x`した`x`に対して代入すればセッター風に使えます。モジュールの外に直接`x`が見えないようにしておきたければ、実際の変数名を`_x`としてプライベート変数風にできます。
16
16
 
17
- モジュールは名前空間なのでオブジェクト指向のクラスっぽく扱えなくもないのですが、それをやるならクラスで実装すべき、ということに通常はなるでしょう。また、実装はクラスでやってモジュール内部にインスタンスを隠蔽しておき、それをwrapるためのモジュールに定義した関数を使ってモジュールの属性経由のインターフェースを提供するという実装方針を取ることもあります。[標準のrandom](https://docs.python.org/ja/3/library/random.html)はそれです。
17
+ モジュールは名前空間なのでオブジェクト指向のクラスっぽく扱えなくもないのですが、それをやるならクラスで実装すべき、ということに通常はなるでしょう。また、実装はクラスでやってモジュール内部にインスタンスを隠蔽しておき、それをwrapるためのモジュールに定義した関数を使ってモジュールの属性経由のインターフェースを提供するという実装方針を取ることもあります。[標準のrandom](https://docs.python.org/ja/3/library/random.html)はそれです。