jsonEncode
в качестве псевдонима для json
был введен, потому что json
часто сталкивался с именем переменной json
, часто используемой для переменной, содержащей значение JSON.
var json = http.get(...);
var data = json.decode(json); // error
var data = jsonDecode(json); // ok
см. Разборку байтового кода python, вы можете получить более конкретную идею
использование цикла while:
1 0 LOAD_CONST 0 (0)
3 STORE_NAME 0 (i)
2 6 SETUP_LOOP 28 (to 37)
>> 9 LOAD_NAME 0 (i) # <-
12 LOAD_CONST 1 (100000000) # <-
15 COMPARE_OP 0 (<) # <-
18 JUMP_IF_FALSE 14 (to 35) # <-
21 POP_TOP # <-
3 22 LOAD_NAME 0 (i) # <-
25 LOAD_CONST 2 (1) # <-
28 INPLACE_ADD # <-
29 STORE_NAME 0 (i) # <-
32 JUMP_ABSOLUTE 9 # <-
>> 35 POP_TOP
36 POP_BLOCK
Тело цикла имеет 10 операций
диапазон использования:
1 0 SETUP_LOOP 23 (to 26)
3 LOAD_NAME 0 (range)
6 LOAD_CONST 0 (0)
9 LOAD_CONST 1 (100000000)
12 CALL_FUNCTION 2
15 GET_ITER
>> 16 FOR_ITER 6 (to 25) # <-
19 STORE_NAME 1 (n) # <-
2 22 JUMP_ABSOLUTE 16 # <-
>> 25 POP_BLOCK
>> 26 LOAD_CONST 2 (None)
29 RETURN_VALUE
В теле цикла 3 операции
Время выполнения кода C намного короче, чем у интерпретатора, и его можно игнорировать.
Потому что вы чаще выполняете код написано на C в интерпретаторе. т.е. i + = 1 находится в Python, поэтому он медленный (сравнительно), тогда как range (0, ...) - это один вызов C, цикл for будет выполняться в основном и в C.
Большинство вызовов встроенных методов Python выполняются как код C. Код, который нужно интерпретировать, работает намного медленнее. С точки зрения эффективности памяти и скорости выполнения разница огромна. Внутреннее устройство Python было оптимизировано до крайности, и лучше всего воспользоваться этими оптимизациями.
range ()
реализован в C, тогда как i + = 1
интерпретируется.
Использование xrange ()
может сделать это еще быстрее для больших чисел. Начиная с Python 3.0 range ()
такой же, как и ранее xrange ()
.