Как @KlausD. указывает, что Python имеет только динамические массивы, называемые list
s. Вы можете добавлять и удалять элементы с помощью .append
и .remove
соответственно. Тем не менее, dict
с ключами кортежа, вероятно, является лучшим выбором, учитывая ваш вариант использования. Таким образом, ваш код станет:
def LSD2(pyramid, m = 0, n = 0, L = {}):
if len(pyramid) == 0:
return 0
if (n, m) in L:
return L[(n, m)]
elif L.get((n-1, m), None) and L.get((n-1, m-1), None):
return max(pyramid[n][m] + max(L[(n-1, m)], L[(n-1, m-1)]
L[(n, m)] = pyramid[0][m] + max(LSD2(pyramid[1:], m, n + 1, L), LSD2(pyramid[1:], m+1, n + 1, L))
return L[(n, m)]
Ответ - да:
Сессии являются сохраняемой серверной стороной. Что касается сервера, нет никакого различия между запросом Ajax и регулярный запрос страницы. Они - оба Запросы HTTP, и они оба содержат информацию о куки в заголовке таким же образом.
От стороны клиента те же cookie будут всегда отправляться на сервер, является ли это регулярным запросом или запросом Ajax. Код JavaScript не должен делать ничего специального или даже знать об этом случае, это просто работает то же, как это делает с регулярными запросами.
Если файл PHP запросы Ajax имеет a session_start()
информация о сессии будет сохранена. (раскрытие запросов в том же домене),
То, что Вы действительно достигаете: cookie отправляются в с запросом Ajax? Принятие запроса Ajax к тому же домену (или в рамках доменных ограничений cookie), ответ - да. Таким образом, запросы Ajax назад к тому же серверу действительно сохраняют ту же информацию о сессии (предполагающий, что названные сценарии выпускают session_start () согласно любому другому Сценарию PHP, хотящему получить доступ к информации о сессии).
Очень важно, чтобы запросы Ajax сохранили сессию. Самый легкий пример - когда Вы пытаетесь сделать запрос Ajax на панель администрации, скажем. Конечно то, что Вы защитите страницу, что Вы выполняете запрос к, не к доступному другими, у которых нет сессии, Вы добираетесь после входа в систему администратора. Имеет смысл?
Одна вещь не упустить, хотя, особенно при использовании платформы должен проверить, повторно создает ли приложение идентификаторы сессии между запросами - что-нибудь, что зависит явно от идентификатора сессии, столкнется с проблемами, хотя, очевидно, остальная часть данных на сессии будет незатронутый.
Если приложение повторно создает идентификаторы сессии как это затем, можно закончить с ситуацией, где запрос ajax в действительности делает недействительным / заменяет идентификатор сессии на странице запроса.
Это то, что делают фреймворки, например, если вы инициализируете сеанс в Front Controller или в сценарии boostrap вам не придется заботиться об его инициализации ни для контроллеров страниц, ни для контроллеров ajax. Фреймворки PHP - не панацея, но они делают столько полезных вещей, как эта!