0
にクラスのすべてのインスタンスを取得これは、ファイルfiles.py
で私のクラスであるのpython
from files import File
File(kwargs1="create", kwargs2="path/to/destination1", kwargs3="/path/to/source1",..........)
File(kwargs1="create", kwargs2="path/to/destination2", kwargs3="/path/to/source2",..........)
現在の状況は、各オブジェクトがあるということです妥当性を確認してから__create()
または__remove()
に進みます。私が尋ねるのは、すべてのオブジェクトを最初に検証してから進めることができるかどうかということです。 私はtasks.py
でそれを達成することができました。私は、パブリックメソッドcreate(self)
とremove(self)
としてプライベートメソッド__create()
と__remove()
を宣言しなければならなかったし、クラスは次のようになります。
class Files():
def __init__(self, *, kwargs1=None, ......, kwargsx=None):
self.kwargs1 = kwargs1
...................
...................
...................
self.kwargsx = kwargsx
__validate()
def __validate():
validate attributes of object and raise execption if fails
def create(self):
create file
def remove(self):
remove file
そしてtasks.py
:
files = []
try:
files.append(File(kwargs1="create", kwargs2="path/to/destination1", kwargs3="/path/to/source1",..........))
files.append(File(kwargs1="create", kwargs2="path/to/destination2", kwargs3="/path/to/source2",..........))
except ValueError as e:
print(e)
else:
for item in files:
if item.kwargsx == "create":
create(item)
elif item.kwargsx == "remove":
remove(item)
実現することが可能であるならば私の質問ですFile自身のこのロジックは?私が考えることができる唯一の方法は、スタックを検査し、各オブジェクトの初期化を繰り返し実行することですが、動作するかどうかはわかりません。
コードでたとえば、最初のインスタンスが作成されたらOK、2番目のオブジェクトが同じ場合です。私は、すべてのオブジェクトを1つずつチェックしてから、それぞれのアクションを実行したり、最初のオブジェクトを取得して保存したり、保存したり、保存したりします。各オブジェクトのアクション!そのようなシナリオは可能ですか? – Max
@Max、私はあなたに一般的な計画を提供しました。ループでは、結果を累積して2番目のループで処理したり、別のクラス属性として設定したり、各インスタンスの作成ごとに決定を蓄積したり、すべてのインスタンスに対して再度実行したりすることができます。 – volcano
あなたの答えをありがとうが、私は私の質問をはっきりと指摘しなかったと思うか、それをする方法を理解していない。どんな方法でも質問を編集します。 – Max