引っかかった落とし穴〜superクラスのリスト〜
MayaPythonでプラグイン作成中に引っ掛かったPythonの落とし穴。
<状況を再現>
class ClassBase(object):
mList = ["","",""]
def GetList(object):
return mListclass 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日に書いたのはいいものの公開するのを忘れていました。)