Идентификаторы целых чисел & gt; 256 в Python [дубликат]

Используйте функцию 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();
22
задан Ashwini Chaudhary 5 October 2014 в 10:36
поделиться

4 ответа

CPython - это сбор мусора, как только они выходят из области видимости, поэтому второй [] создается после сбора первого []. Таким образом, большую часть времени он попадает в ту же ячейку памяти.

Это показывает, что происходит очень четко (выход может отличаться в других реализациях Python):

class A(object):
    def __init__(self): print "a",
    def __del__(self): print "b",

# a a b b False
print A() is A()
# a b a b True
print id(A()) == id(A())
32
ответ дан Glenn Maynard 27 August 2018 в 07:44
поделиться

Оператор == на списках и dicts не сравнивает идентификаторы объектов, чтобы увидеть, являются ли они одним и тем же объектом. Для этого используйте obj1 is obj2.

Вместо этого оператор == сравнивает членов списка из dict, чтобы узнать, совпадают ли они.

-4
ответ дан Dave Kirby 27 August 2018 в 07:44
поделиться

он не работает одинаково в Jython ...

>>> id({})
1
>>> id([])
2

Может ли быть оптимизация, когда обычно используемые (т.е. пустые) контейнеры «интернированы», чтобы сэкономить на расходах на размещение ?

Это (в CPython) не предполагает:

>>> def mutateid(obj):
...   obj.append('x')
...   print obj
...   print id(obj)
... 
>>> mutateid([])
['x']
4299590472
>>> id([])
4299590472
>>> 
-1
ответ дан phlip 27 August 2018 в 07:44
поделиться
38
ответ дан Thomas Wouters 27 August 2018 в 07:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: