1. ホーム
  2. python

[解決済み] Pythonで__init__から値を返すには?

2022-07-01 10:20:20

質問

あるクラスで __init__ 関数があります。

オブジェクトが作成されたとき、この関数から整数値を返すにはどうしたらよいでしょうか。

あるプログラムを書きました。 __init__ がコマンドラインパースを行うプログラムを書いたのですが、ある値を設定する必要があります。グローバル変数にセットして、他のメンバー関数で使ってもいいのでしょうか?もしそうならどうすればいいのでしょうか?今までは、クラスの外で変数を宣言していましたが、ある関数で設定しても、他の関数には反映されないのでしょうか?

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

__init__ は None を返すことが要求されます。他のものを返すことはできない(少なくともそうすべきではない)。

返したいものを何でもインスタンス変数(または関数)にしてみてください。

>>> class Foo:
...     def __init__(self):
...         return 42
... 
>>> foo = Foo()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: __init__() should return None