引っかかった落とし穴〜superクラスのリスト〜

MayaPythonでプラグイン作成中に引っ掛かったPythonの落とし穴。



<状況を再現>


class ClassBase(object):

mList = ["","",""]

def GetList(object):
return mList

class ClassA(ClassBase):
def ChangeList():
mList[0] = "ClassA"

class ClassB(ClassBase):
def ChangeList():
mList[0] = "ClassB"

def main():
objA = ClassA()
objB = ClassB()


objA.ChangeList()
print "objA.mList[0] = " + objA.mList[0]

objB.ChangeList()
print "objB.mList[0] = " + objB.mList[0]
print "objA.mList[0] = " + objA.mList[0]

                                                                            • -

[結果]

objA.mList[0] = ClassA
objB.mList[0] = ClassB
objA.mList[0] = ClassB ←え・・・?

                                                                            • -



なしてこうなるんだったっけな。
原因調査中です。。。


(この記事11日に書いたのはいいものの公開するのを忘れていました。)