LINUX.ORG.RU

Сообщения f1af

 

Вот так пишутся топовые игры (Python)

Форум — Development

лог из жизни программиста большой конторы большой игры

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 - это какой-то вопрос, или случайно вставилось?
f1af
()

RSS подписка на новые темы