Вы рассмотрели одну сторону проблемы - какому методу должно соответствовать лямбда-выражение. Что вы не учли, так это то, что происходит со всеми другими методами в интерфейсе.
Язык можно было бы указать так, чтобы лямбда-выражение соответствовало одному методу, а все остальные выкидывали RuntimeException
- но это было бы редко полезно. Рассмотрим, как будет использоваться Foo
. В результате вы получите объект, для которого вы могли бы вызывать только некоторые методы, и вы даже не знали бы , какие методы вы могли бы безопасно вызвать.
Если вы знаете, что вы собираетесь вызывать только один метод (например, count
в вашем примере), то это один автономный элемент функциональности, и он может быть инкапсулирован в отдельный интерфейс - в этот момент существующее лямбда-выражение функциональность в порядке. Если вы не знаете, что хотите использовать только один метод, то ваше предложение все равно не поможет.
Если Вы используете Python 2.5 или более новые, urllib2_file
является и ненужным и не поддерживается, так проверка, какую версию Вы используете (и возможно обновляют).
Если Вы используете Python 2.3 или 2.4 (единственные версии, поддерживаемые urllib2_file
), попытайтесь выполнить пример кода и посмотрите, есть ли у Вас та же проблема. Если так, там вероятно что-то не так или с Вашим Python или urllib2_file
установка.
Править:
Кроме того, Вы, кажется, не используете ни один из urllib2_file
два поддерживаемых формата для данных POST. Попытайтесь использовать одну из следующих двух строк вместо этого:
d = ['uploaded', open(sys.argv[1:])]
## --OR-- ##
d = {'uploaded': open(sys.argv[1:])}
Во-первых, существует третий способ запустить программы Python.
Из cmd.exe ввести python myprogram.py
. Вы получаете хороший журнал. Вы не должны вводить материал одна строка за один раз.
Во-вторых, проверьте urrlib2 документацию. Необходимо будет посмотреть на urllib, также.
Запрос требует URL, и urlencoded закодировал буфер данных.
данные должны быть буфером в стандарте application/x-www-form-urlencoded формат. urllib.urlencode () функция берет отображение или последовательность 2 кортежей и возвращает строку в этом формате.
Необходимо закодировать данные.