Вот так пишутся топовые игры (Python)
лог из жизни программиста большой конторы большой игры
dg>>>>>>>>>>>>> только это падает si>>>>>>>>>>>>> Там такие строчки: self.shipUpgradeInfo = gShipUpgradeTree.getShipInfo(self.name) if not self.shipUpgradeInfo: self.shipUpgradeInfo = ShipInfo(self.name) То есть, если первая не сможет найти закешированное shipUpgradeInfo в дереве прокачки, то shipUpgradeInfo все равно будет создано вручную. Поэтому можно, например, первую обернуть в try: self.shipUpgradeInfo = gShipUpgradeTree.getShipInfo(self.name) except: self.shipUpgradeInfo = None Либо, другой вариант, в ShipUpgradeTree завести флаг self.isInited, устанавливать его в True в методе Init. А если запрашивают getShipInfo, а isInited == False, то возвращать там None dg>>>>>>>>>>>>> class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(Singleton, cls).__new__( cls, *args, **kwargs) return cls._instance if __name__ == '__main__': s1=Singleton() s2=Singleton() if(id(s1)==id(s2)): print «Same» else: print «Different» si>>>>>>>>>>>>> Про Singleton - это какой-то вопрос, или случайно вставилось?