Pythonのクラスに慣れようとしています。C++ では、メンバー変数に関して、クラスの構造は単純に思えます。クラス スコープの最初または最後に (必要に応じて public または private として) それらを宣言し、必要に応じて操作します。
これはPythonでどのように処理されますか?
現在、私はクラスを作成し、必要に応じて変数を宣言する傾向があります。
class Foo():
standard = "standard"
def __init__(self, arg_1, arg_2):
self.first = arg_1
self.second = self.do_something(arg_2)
def do_something(param):
second = # do something with self.standard and param and store it.
return second
def do_another_thing():
self.third = # do another thing.
クラスはメンバー変数なしでも定義でき、動的に追加できることを知っています。
class Foo():
pass
foo = Foo()
foo.a = "a"
# etc.
これらすべてを一緒に投げると、コードが読みにくくなるため、混乱します。
だから私の質問は、python のメンバー変数に関して、クラスを設計するための推奨される方法は何ですか?
編集:
私が尋ねた方法は誤解を招くものでした。ごめんなさい!しかし、答えは他のことを理解するのに役立ちました。;-)
言い換えると、クラス内で定義された変数と、コーディング中に動的に追加された変数に関する混乱を解決する方法を求めているわけではありません。
私が解決したかったのは、メンバー変数に関する Python クラスの設計についての私の混乱でした。つまり、どこに配置するのが最適なのか、コードの潜在的な読者がそれらを検索せずにすべてを見ることができるようにする. そのため、C++ のクラスについて言及しました。すべてのメンバー変数に対して 1 つの場所があり、クラスに格納されているデータを知りたい場合は、クラスの最初または最後を見ると、必要なすべての情報が得られます。
上記の例では、is standard
above __init__(self, ...)
、are inside of 、is insideであり、クラスが大きい場合、他のすべてのメソッドの下にある可能性があります。そのため、行ごとに検索する必要があります。そうしないと、その存在に気付かないでしょう。first
second
__init(self,...)
third
do_something()
私の質問がより適切に提案されることを願っています。:-)