
Tishka17
19.06.2019
20:34:12

Aragaer
19.06.2019
20:34:14

Tishka17
19.06.2019
20:34:22

Jaroslaw
19.06.2019
20:34:34
понять как работают декораторы

Google

Aragaer
19.06.2019
20:34:46
декораторы обычно принимают аргумент
твой декоратор не принимает аргумента

Серый
19.06.2019
20:34:53

Jaroslaw
19.06.2019
20:35:07
ну вот какой он сейчас
def decorator(func):
def wrapper():
print("Code before performance")
func()
print("Code after performance")
return wrapper
def show():
print("I am simple Function")
# decorator()()
x = decorator(show)
x()

Aragaer
19.06.2019
20:35:07
если offset это позиция в байтах, то seek
у тебя есть функция show, а x это она же, завернутая в декоратор


Tishka17
19.06.2019
20:35:48
Давай я попробую:
1. Когда ты пишешь
@dec
def x():...
Это примерно то же самое что
def f():...
x=dec(f)
2. Когда ты в декораторе возвращаешь функцию она используется вместо оригинальной
3. Когда у тебя декоратор имеет вид
def dec(f):
...
return otherfunc
@dec
def x():...
Как мы видели выше это эквивалентно
x=otherfunc
Поэтому когда ты вызываешь x() на самом деле просто вызывается otherfunc()
4. Так как обычно эту otherfunc создают внутри декоратора, она имеет доступ ко всему что в нем есть. В частности к оригинальной функции, так как она передается аргументом в декоратор
Видишь, х перестал быть функцией. В него записалось то, что вернцл декоратор

Google

Tishka17
19.06.2019
20:35:49
Соответственно, чтобы х был функцией, декоратор должен вернуть функцию
Он может вернуть ту же самую функцию. Но тогда они и работать будет как раньше
Чтобы при вызове х делалось что-то другое, декоратор должен вернуть другую функцию
Ну и наконец чтобы эта функция была не одна и та же постоянно, а как-то учитывала то, что мы передали, то мы создаём ее прям внутри при каждом вызове декоратора

Aragaer
19.06.2019
20:35:49
но ты можешь сделать @decorator
def show():
...

Серый
19.06.2019
20:35:54

Aragaer
19.06.2019
20:35:58
тогда будет по-другому

Tishka17
19.06.2019
20:35:59

Aragaer
19.06.2019
20:36:48
если через @, то внутрь декоратора попадет show как написано, а потом результат декоратора (завернутая функция) будет присвоена в show (то есть функция будет заменена на завернутую)

Tishka17
19.06.2019
20:36:49
Блин. В отрыве от контекста не очень. Надо будет переписать

Aragaer
19.06.2019
20:38:02
и я знаю, что при этом реально память не будет забиваться, потому что все подгруженные страницы могут быть (и будут) безболезненно выгружены операционкой

Tishka17
19.06.2019
20:39:44

Aragaer
19.06.2019
20:42:20
ну да, и вот по ней потом find-ом бегать

Jaroslaw
19.06.2019
20:47:58

Tishka17
19.06.2019
20:48:31

Jaroslaw
19.06.2019
20:48:43
я случайно именно это переслал))

Tishka17
19.06.2019
20:49:01
Короче, декораторы ты можешь не делать, но понимать как они работают должен
Особенно ту часть, где decorator()()

Jaroslaw
19.06.2019
20:52:06

Google

Tishka17
19.06.2019
20:52:23
Похоже, да
https://m.habr.com/ru/post/141411/
Глянь
Вроде подробно

Jaroslaw
19.06.2019
20:54:09
о я не один, кто это не понимает

Владимир
19.06.2019
20:54:32
Ищу наставника который индивидуально обучит программированию желательно на Питон готов на почасовую оплату, нужен наставник который на примере конкретных задач к реализации будет помогать мне изучать язык и программирование,
Есть идеи очень востребованных ИТ продуктов хочу реализовать нужна помощь.
Спасибо.

TpouHuK
19.06.2019
20:56:36

Tishka17
19.06.2019
20:56:57

Jaroslaw
19.06.2019
20:57:17

?Rain?
19.06.2019
20:59:39
Хде
https://www.youtube.com/watch?v=abXTpUOj7tE

Bobrikwhy
19.06.2019
21:05:20
Драстк ребзя
Че на счёт kotline думаете ?

..:: махуноф ::..
19.06.2019
21:06:08

Aragaer
19.06.2019
21:09:25

Tishka17
19.06.2019
21:10:12

Bobrikwhy
19.06.2019
21:10:38
Тот тот
Они похожи прост
И решил узнать что думаете

Aragaer
19.06.2019
21:11:04
чем похожи?

Bobrikwhy
19.06.2019
21:11:27
Немного синтаксисом

Google

Aragaer
19.06.2019
21:11:27
я думаю, что котлин это попытка исправить в жаве не то, что в ней надо исправлять

Bobrikwhy
19.06.2019
21:11:30
Все коротко

Alexey
19.06.2019
21:12:02

koder
19.06.2019
21:12:57

Admin
ERROR: S client not available

koder
19.06.2019
21:13:05

Aragaer
19.06.2019
21:13:07
выкинуть из джава спеки обязательное требование рефлекшна, что позволит нормально оптимизировать байткод
потому что когда ты добавляешь идиоматичные слои абстракций, это не должно влиять на рантайм

Tishka17
19.06.2019
21:14:17

koder
19.06.2019
21:14:28
А что надо было?
точнее не совсем исправить. Было достаточное количесво людей, которые хотели получить все что уже было в jvm мире, но не хотели несколько более хипстерского языка при этом

Aragaer
19.06.2019
21:14:44
когда я включил максимально агрессивную оптимизацию прогардом под андроид, тогда я увидел, что добавление +1 слоя абстракции вообще не меняет байткод. Вот тогда я успокоился и перестал напрягаться по поводу идиоматичной жавы

koder
19.06.2019
21:14:55
обычно люди, которые судят по никам - ничерта не понимают в жизни

Tishka17
19.06.2019
21:15:05
Прогард рулит
На j2me творил чудеса

Aragaer
19.06.2019
21:15:31
а котлин это "та же жава, но с хипстерским синтаксисом, а производительность нас не колышет"
мне с моими заскоками простого сишника это не нравится

Tishka17
19.06.2019
21:16:32
?

koder
19.06.2019
21:16:47
ок, найди мне там "одинаковости" синтаксиса. Желательно такие, которых нет в С++

Bobrikwhy
19.06.2019
21:17:04

Google

koder
19.06.2019
21:17:26

Jaroslaw
19.06.2019
21:17:53
Stop Booling

Tishka17
19.06.2019
21:17:58
Ушел от темы
А правда, что ты там похожего в сиетаксисе нашел

Bobrikwhy
19.06.2019
21:18:28

Владимир
19.06.2019
21:18:58

koder
19.06.2019
21:19:26

Tishka17
19.06.2019
21:19:29

Серый
19.06.2019
21:19:29
Серьезно, переходить в споре с темы спора на личности, тем более так нелепо - логическая ошибка и в принципе глупо выглядит

Bobrikwhy
19.06.2019
21:20:07

Tishka17
19.06.2019
21:21:16
Что плохого ?
Нет, правда. Это совершенно разные языки, в которых очень мало общего кроме того, что они императивные и Тьюринг полные

Bobrikwhy
19.06.2019
21:21:44

Forevka ÐΞV
19.06.2019
21:22:04
Так что этот факт можно опустить

Tishka17
19.06.2019
21:23:17