@propython

Страница 134 из 228
Denis
19.01.2018
14:04:55
Ну вот Антон найдется. Про концепцию сахара и соли я заодно почитал википедию пока.

Anton
19.01.2018
14:06:33
вот у меня кстати вопрос, как правильнее расчленить программу,? где про это прочитать?
а если серьёзно, это очень сложный вопрос. наверное в этом и есть вся суть программирования

вот у меня кстати вопрос, как правильнее расчленить программу,? где про это прочитать?
надо уметь правильно пользоваться предоставляемыми языковыми примитивами: функции, классы, модули, декораторы. это как раз то, что позволяет декомпозировать (не расчленять, конечно) ваш код и задачу.

и ещё совет: читайте код. много кода. популярные библиотеки, фреймворки и тп. разберитесь как устроен фласк или клик, реквестс. популярные библиотеки популярны именно потому, что хорошо написаны (не всегда, конечно)

Google
Denis
20.01.2018
01:52:24
А есть кто живой?

Evil
20.01.2018
02:49:34
есть

Denis
20.01.2018
03:47:32
привет :) простая программка

import json def jsonize(val): print (val) #data = json.loads(val) #print (data) @jsonize def article(): print ("Hellow Molly!", "Lets talk today about Molly....")

дак вот принт вал выдает

python3 json.py <function article at 0x105b7c9d8> <function article at 0x105b7c9d8>

и я чета не могу конвертнуть это в джейсон и так и сяк пробовал ошибки

пробовал json.dumps в прошлой программе работало

видимо все из-за того что я поймал в джейсонайз не текст а обьекты

Evil
20.01.2018
04:11:22
1. dumps серилизует в строку

2. посмотри как работают декораторы

вообще муть какую ты написал иди книжки читай, даже объяснять не охота

def jsonify(func): print(json.dumps(func())) @jsonify def article(): return {"title": "Python for dummies"}

Google
Denis
20.01.2018
04:30:13
я прям дико извняюсь но вот....

Traceback (most recent call last): File "json.py", line 1, in <module> import json File "/Users/master/Desktop/json.py", line 6, in <module> @jsonify File "/Users/master/Desktop/json.py", line 4, in jsonify print(json.dumps(func())) AttributeError: module 'json' has no attribute 'dumps'

типа атрибута такого нет хотя он ступудняк есть и работает

Ruslan
20.01.2018
06:15:42
Покажи строку импорта json'a

Denis
20.01.2018
06:18:09
Покажу все Руслан

import json def jsonify(func): print(json.dumps(func())) @jsonify def article(): print ("Hellow Molly! This is me Louse.. ")

Ruslan
20.01.2018
06:18:28
А файл как называется?

Denis
20.01.2018
06:18:29
мне просто демонстрацию декоратора с джейсоном надо сделать

json.py

Ruslan
20.01.2018
06:18:49
переименуй

Denis
20.01.2018
06:20:00
оки

теперь сказал

decor_demo.py:3: syntax error, unexpected ':' decor_demo.py:7: syntax error, unexpected ':' decor_demo.py:8: syntax error, unexpected end-of-input, expecting keyword_end

Ruslan
20.01.2018
06:22:45
decor_demo это новое название? или другой файл?

Denis
20.01.2018
06:23:00
сильно ему название функции не нравится верхней

новое название

вроде ничего предосудительного

Ruslan
20.01.2018
06:24:38
Не нравится ему твой текст

Denis
20.01.2018
06:24:41
и ведь какая банальщина

на руби за минуту бы сделал

Google
Denis
20.01.2018
06:25:34
текст то какой не нравится? Хело Долли? :)))))

Ruslan
20.01.2018
06:25:46
А

Вот оно что: твоя обернутая функция, ничего не возвращает, соответственно json пытается сделать дамп None

Denis
20.01.2018
06:30:16
но это странно потому что если принтануть print(json.dumps(func())) без джейсона мы увидим два обьекта но не текст

как из обьектов выдавить сок текса я не знаю

Ruslan
20.01.2018
06:35:09
Потому что возможно ты принтишь объекты ошибок

Возвращай результат из функции, на руби тоже нужно так делать

rem
20.01.2018
07:28:46
import grequests with open("C:\\path\\urls.txt") as werewolves: array = [row.strip() for row in werewolves] params = {'a':'b', 'c':'d'} rs = [grequests.post(u, data=params) for u in array] for r in grequests.imap(rs, size=16) print(r.status_code, r.url) Все довольно просто, импортируется библиотека, открывается файл на чтение, создается список, переменной params присваивается значения a:b, c:d.

для чего params там я не понял, я прост с деревни

может кто подсказать?ъ

Denis
20.01.2018
10:00:45
Дак это все немного нето

import json def conv(func): print(func()) @conv def article(): print ("Hellow Molly! This is me Louse.. ")

Denis
20.01.2018
10:01:57
во первых он запросил лишнюю строку между импортом и кодом

а во вторых выводится сейчас ошибка по 4 и 8 строке это def

decor_demo.py:4: syntax error, unexpected ':' decor_demo.py:8: syntax error, unexpected ':' decor_demo.py:9: syntax error, unexpected end-of-input, expecting keyword_end

и я лично никак понять не могу как простая декларация функции привела к такой буре

-------------------------------------------------

Слушайте Гуры у меня вопрос в тесте все мозги вынес

@login_required def send_feedback(request)

Какой записи эквивалентно применение декоратора?

Google
Admin
ERROR: S client not available

Denis
20.01.2018
10:05:21
send_feedback = login_required(send_feedback) login_required = send_feedback(login_required) def login_required(send_feedback)(request) def login_required(send_feedback)

4 варианта

BlackAndOrange
20.01.2018
10:06:00
Первой, очевидно

Denis
20.01.2018
10:06:25
по идее же запускается login_required и ему передается send_ бла бла

Руслан поучаствуй плиз для статистики

А че оказалось я все закоментил оставил 1 строку и оказалось что json у меня типа и нет

хотя в предыдущем скрипте он работает

как так может быть?

не знаю как он работал и куда он делся.. но даже попытка поискать пипом джейсон вызывает 2 страницы красного текста

Ruslan
20.01.2018
12:36:59
Сейчас ничего не пиши, но внимательно читай

def simple_decorator(func): print(func)Вот это у тебя не декоратор. Вернее это может использоваться как декоратор, но он сразу же вызывается. Твой скрипт вообще не должен ничего печатать.

Вот это правильно: def simple_decorator(func): def wrapper(): print(func()) return wrapperДекорирующая функция возвращает декорируемую функцию интерпретатору

Далее ты можешь использовать декорируемую функцию в любом учатске кода: article()Что приведет к вызову того самого wrapper

По сути код @simple_decorator def article(): print("String `Hellow Molly! This is me Louse..` is not JSON")Говорит интерпретатору "эй, чувак, при вызове этой функции пропусти ее через simple_decorator"

Да, кстати обрати внимание, print работает только со stdout, он не передаст никак текст Hellow Molly! This is me Louse.. тебе в json декодер

поэтому ты должен ВЕРНУТЬ строку, причем строка должна быть в формате json: @simple_decorator def article(): return "{'is_json': 'Hellow Molly! This is me Louse..'}"

Так же тебе необходимо объект (а это будет словарь, когда json конвертирует строку) вернуть из wrapper: def to_dict(func): def wrapper(): _func_result = func() return json.loads(_func_result) return wrapper

Вот этот код не должен ничего напечатать тебе в консоль: import json def to_dict(func): def wrapper(): _func_result = func() return json.loads(_func_result) return wrapper @to_dict def article(): return '{"is_json": "Hellow Molly! This is me Louse.."}'

Потому что результат вычислений нужно вызывать явно где-нибудь в своем коде, например: import json def to_dict(func): def wrapper(): _func_result = func() return json.loads(_func_result) return wrapper @to_dict def article(): return '{"is_json": "Hellow Molly! This is me Louse.."}' _data = article() print(_data)

Google
Ruslan
20.01.2018
12:50:47
На этом все. Но на заметку: попробуй с сообщества @ru_python_beginners

Denis
20.01.2018
14:08:29
проблема в том что модуля этого нет и он не ставится

2 страницы красного текста ошибок и хрен вам

это даже поиск выдает

ну поставил линух попробую там попробовать, пардон за тафтологию

Ruslan
20.01.2018
16:17:05
А название поменял файла?

V
21.01.2018
12:22:40
подскажите плз, у меня в переменной значение при выводе через print выводится как b'МОЕЗНАЧЕНИЕ' как с этим работать, что погуглить? мне нужно по сути это значение без лишних кавычек и b. Насколько я понял это байтовая переменная..

Страница 134 из 228