JavaScript:
Object
прототип может быть изменен. Каждый объект в Вашей программе получает новые свойства, и что-то, вероятно, повреждается.
Все объекты являются картами хеша, но трудно безопасно использовать их как таковой. В частности, если один из Ваших ключей, оказывается, __proto__
, Вы в беде.
Никакое объектное закрытие во время ссылки на функцию. На самом деле никакое объектное закрытие вообще - вместо этого, this
не установлено каждый раз, когда функция вызвана с объектной нотацией или new
оператор. Результаты в большом количестве беспорядка, особенно при создании обратных вызовов события, потому что this
не установлен на то, что ожидает программист.
new
оператор приводит к this
устанавливаемый равный глобальному объекту, приводящему к большой поломке. Оператор сложения, перегруженный, чтобы также выполнить конкатенацию строк, несмотря на эти две операции, являющиеся существенно отличающимся. Результатами в боли, когда значение Вы ожидаете быть числом, является на самом деле строка.
==
и !=
операторы выполняют приведение типа. Сравнения между различными типами включают список правил, что никакой смертный не может помнить полностью. Это смягчено существованием ===
и !==
операторы.
И null
и undefined
существуют, с тонко различными, все же избыточными значениями. Почему?
Странный синтаксис для установки цепочек прототипа.
parseInt(s)
ожидает число C-стиля, таким образом, значения обработок с продвижением обнуляют как восьмеричные и т.д. Вы можете [по крайней мере 1 114], но поведение по умолчанию сбивает с толку.
Никакая область действия блока.
Может объявить ту же переменную несколько раз.
Может использовать переменную, не объявляя его, в этом случае это глобально и вероятно повреждает Вашу программу.
with { }
.
Действительно трудный к документу с JavaDoc как инструменты.
Для публикации файла требуется кодировка multipart / form-data
, и, насколько мне известно, нет простого способа (например, однострочного или чего-то еще) сделать это с помощью stdlib. Но, как вы упомянули, существует множество рецептов.
Хотя они кажутся многословными, ваш вариант использования предполагает, что вы, вероятно, можете просто инкапсулировать их один раз в функцию или класс и не слишком беспокоиться, верно? Взгляните на рецепт в ActiveState и прочтите комментарии для предложений:
или посмотрите класс MultiPartForm
в этом PyMOTW, который кажется довольно многоразовым:
Я считаю, что оба работают с двоичными файлами.
Как urllib стал более подробным? Вы строите postdict в основном так же, за исключением того, что вы начинаете с
postdict = [ ('userfile', open(wavfile, 'rb').read()) ]
. После того, как вы vave postdict,
resp = urllib.urlopen(url, urllib.urlencode(postdict))
, а затем вы получаете и сохраняете resp.read ()
и, возможно, отмените цитирование и попробуйте загрузку JSON, если необходимо . Вроде бы на самом деле короче! Так что же мне не хватает ...?