Используйте функцию callback()
внутри успеха foo()
. Попробуйте таким образом. Это просто и легко понять. & nbsp;
var lat = "";
var lon = "";
function callback(data) {
lat = data.lat;
lon = data.lon;
}
function getLoc() {
var url = "http://ip-api.com/json"
$.getJSON(url, function(data) {
callback(data);
});
}
getLoc();
Итак, как я могу опросить переменную, которая является NoneType?
blockquote>Использовать оператор
is
, напримерif variable is None:
Почему это работает ?
Поскольку
None
является единственным одноэлементным объектомNoneType
в Python, мы можем использовать операторis
для проверки того, является ли переменная имеетNone
в нем или нет.Цитирование из
is
docs ,Тесты
blockquote>is
иis not
для идентификации объекта:x is y
является истинным тогда и только тогда, когдаx
иy
являются одним и тем же объектом.x is not y
дает обратное значение истинности.Поскольку может быть только один экземпляр
None
,is
будет предпочтительным способом проверкиNone
.
Услышьте его из уст лошади
Цитата Руководство по стилю кодирования Python - PEP-008 (совместно определяемый самим Гвидо),
Сравнение с синглтонами типа
blockquote>None
всегда должно выполняться с помощьюis
илиis not
, никогда не выполняемых операторов равенства.
Это также можно сделать с помощью isinstance
согласно ответ Алекса Холла :
>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True
isinstance
также интуитивно, но есть усложнение, которое требует line
NoneType = type(None)
, который не нужен для таких типов, как int
и float
.
if variable is None:
print 'Is None'
-
if variable is not None:
print 'Isn\'t None'