Сегодня я обнаружил интересную ошибку python, из-за которой многократное создание экземпляра класса выглядит как удерживающее состояние. В последующих вызовах экземпляра переменная уже определена.
Я свел проблему к следующему взаимодействию класса / оболочки. Я понимаю, что это не лучший способ инициализировать переменную класса, но он точно не должен вести себя так. Это настоящая ошибка или это «особенность»? : D
tester.py:
class Tester(): def __init__(self): self.mydict = self.test() def test(self,out={}): key = "key" for i in ['a','b','c','d']: if key in out: out[key] += ','+i else: out[key] = i return out
Подсказка Python:
Python 2.6.6 (r266:84292, Oct 6 2010, 00:44:09) [GCC 4.2.1 (Apple Inc. build 5664)] on darwin >>> import tester >>> t = tester.Tester() >>> print t.mydict {'key': 'a,b,c,d'} >>> t2 = tester.Tester() >>> print t2.mydict {'key': 'a,b,c,d,a,b,c,d'}