2

詳細を追加して質問を変更する

私は1つのクラスを持っていますgeneral.py:

class TestProcedure:
    name = "Undefined test procedure"
    description = None
    sequence_count = 0
    .....

上記のクラスをベースとして、さまざまなファイルにさまざまなクラスを作成します。たとえば、ファイルの1つは次のfile1.pyとおりです。

from general import *

class F1(TestProcedure):

    def performTest(self):
        #HERE I WANT TO INCREMENT sequence_count#               
                 

2 番目のファイルは次のfile2.pyとおりです。

from general import *   

class F2(TestProcedure):

    def performTest(self):
        #HERE WHEN I TRY TO ACCESS sequence_count I GET A LAST MODIFIED VALUE#

上記のように、sequence_Count にアクセスしようとするいくつかのクラスが必要であり、ファイルを実行しようとするたびsequence_countに最後に変更された値を取得します。

同じようにする方法があれば教えてください。

4

3 に答える 3

4

どのように更新しているのかわかりませんが、インスタンスではなく元のクラスsequence_countの属性を更新する場合は、継承されたすべてのクラスに反映する必要があります。

例えば

class TestProcedure(object):
    sequence_count = 0

class F1(TestProcedure):
    pass

# These are instances of your class
# We will modify one later to see what happens
class_instance = F1()
un_altered_class_instance = F1()

# This is updating your class
TestProcedure.sequence_count = 20

# This is updating the instance of your class
class_instance.sequence_count = 5

new_class_instance = F1()

print(F1.sequence_count)
# 20
print(class_instance.sequence_count)
# 5
# This outputs 5 as we modified the attribute of the instance
print(un_altered_class_instance.sequence_count)
# 20
# This outputs 20 as we did not modify the attribute of this instance 
print(new_class_instance.sequence_count)
# 20

上記の例からわかるように、これにより、元のクラスと、sequence_count属性がまだ変更されていないインスタンスを含む、それから継承されたすべてが更新されます。上記の からわかるようにclass_instance、変更された値が保持されます。

于 2013-08-02T11:39:49.347 に答える