@ru_python

Страница 2958 из 9768
Whore Amazing
15.06.2017
09:14:05
так может порядковый номер записывать в чайлда при манипуляции с ним?
проблема не хранить его, а менять ведь он может меняться внутри вложенного ифа, и потом когда по дереву вернешься наверх, уже не получишь доступа к измененному счетчику

Whore Amazing
15.06.2017
09:14:45
глобальная переменная не есть хорошо

Google
Whore Amazing
15.06.2017
09:15:11
нужно хранить номер сквозной или для данного уровня иерархии?
в чайлде - можно и для данного но в корневой нужен сквозной

мне вчера тут советовали classmethod, но с несколькими уровнями вложенности я не уверен, что он будет работать

Anton
15.06.2017
09:15:51
ну заведи переменную класса, как советовали выше

Whore Amazing
15.06.2017
09:16:16
и как изменять переменную родителя из ребенка?

Anton
15.06.2017
09:17:20
через ParentClass.counter = ...

Vasiliy
15.06.2017
09:17:24
Важный вопрос - дерево мутабельное или нет

Whore Amazing
15.06.2017
09:17:42
прошу прощения я ваших матанов не учил можно по-русски?

Whore Amazing
15.06.2017
09:18:18
эм, нет

Anton
15.06.2017
09:20:08
и как изменять переменную родителя из ребенка?
только я не очень понимаю, зачем менять переменную родителя из ребенка?

Whore Amazing
15.06.2017
09:20:56
только я не очень понимаю, зачем менять переменную родителя из ребенка?
ну смотри вот у меня в родителе переменная счетчика у меня ребенок - иф я увеличиваю счетчик перехожу по дереву вниз, в ребенка в нем еще один иф я счетчик увеличил, а куда его писать?

Google
Whore Amazing
15.06.2017
09:22:37
а куда нужно его сохранять, в вышестоящего или в toplevel?
в топлевел. только он не самой корневой нодой будет, там сложнее. в общем, туда, откуда отсчет начался.

Anton
15.06.2017
09:23:29
и такой будет один на дерево, или их может быть несколько?

Whore Amazing
15.06.2017
09:23:32
а вообще, желательно, чтобы был доступен откуда угодно. ну я задачу описал, вообрази, что будет при сложной вложенной конструкции дерева.

Vasiliy
15.06.2017
09:23:37
яннп

вот у тебя дерево корень-иф-иф-иф

Whore Amazing
15.06.2017
09:23:57
и такой будет один на дерево, или их может быть несколько?
несколько, ты прав. для разных типов нод. но я думаю, они одинаково делаются.

Vasiliy
15.06.2017
09:24:03
что должно лежать в счетчиках этих нод?

Anton
15.06.2017
09:24:41
ну подозреваю, что можно его просто явно передавать во все чайлды

Whore Amazing
15.06.2017
09:25:05
что должно лежать в счетчиках этих нод?
изначально ничего они увеличиваются при проходу по дереву компиляции, так скажем когда мы находимся в корне, счетчик 0. первый иф увеличивает счетчик, и там будет лежать 1. второй - 2. третий - 3.

Anton
15.06.2017
09:25:37
главное потом не утечь от циклических ссылок

Whore Amazing
15.06.2017
09:25:42
ну подозреваю, что можно его просто явно передавать во все чайлды
ну да, это не проблема. проблема в том, как его менять, чтобы он поменялся везде, а не только в том чайлде, откуда ты его меняешь.

Whore Amazing
15.06.2017
09:26:40
да? и можно менять переменные в нем?

Anton
15.06.2017
09:26:50
не нужно хранить само число, нужно брать число из parent

Vasiliy
15.06.2017
09:26:54
тебе нужно количество ифов посчитать в дерево просто?

Vasiliy
15.06.2017
09:27:15
в корневой ноде делаешь переменную со счетчиком и одной функцией его заполняешь

Anton
15.06.2017
09:27:26
тебе нужно количество ифов посчитать в дерево просто?
и как я понял, это может быть несколько поддеревьев

не в едином самом корневом корне

Google
Vasiliy
15.06.2017
09:27:50
и?

Whore Amazing
15.06.2017
09:27:56
поэтому и важны не глобальные переменные

Vasiliy
15.06.2017
09:27:58
тебе нужно количество ифов в аждом поддереве?

Whore Amazing
15.06.2017
09:28:18
доо из определенного корня начиная

Anton
15.06.2017
09:28:20
передавай Parent поддерева в каждого чайлда

Vasiliy
15.06.2017
09:28:35
блин, ты что-то пишешь, но только непонятнее становится

Whore Amazing
15.06.2017
09:28:57
передавай Parent поддерева в каждого чайлда
сам объект? это ж какого размера у меня тогда дерево-то вырастет?

Vasiliy
15.06.2017
09:29:02
что занчит "начиная из определенного корня"?

Vasiliy
15.06.2017
09:29:14
пример напиши

Anton
15.06.2017
09:29:20
сам объект? это ж какого размера у меня тогда дерево-то вырастет?
не вырастет, ты будешь только ссылку передавать

Whore Amazing
15.06.2017
09:29:21
ща

Vasiliy
15.06.2017
09:29:32
вот дерево со всякими "поддеревьями", и что где должно лежать в цифрах

Whore Amazing
15.06.2017
09:31:13
вот дерево root -----subroot --------if (counter=1) -----------if (counter=2) ---------------if(counter=3) -----------if(counter=4) -----subroot2 ---------if(counter=1) ---------if(counter=2) и т.д.

т.е. я просто могу передавать вниз ссылку на каждый subroot, а при нахождении ифа в дереве менять в нем атрибут?

Vasiliy
15.06.2017
09:32:45
а что такое subroot?

Whore Amazing
15.06.2017
09:33:07
"подкорень" :D то мето в дереве, откуда надо счет начинать про которое ты спрашивал

Vasiliy
15.06.2017
09:33:28
ну чем он отличается? отдельный класс для них?

Google
Whore Amazing
15.06.2017
09:33:45
да

Vasiliy
15.06.2017
09:34:01
а если у тебя сабрут у сабрута

что будет?

Whore Amazing
15.06.2017
09:34:11
нет, такого не будет

бай дизайн

Admin
ERROR: S client not available

Vasiliy
15.06.2017
09:34:55
тогда переменная у обьектов типа if. обход в глубину с корня, на if увеличиваешь счетчик, на subroot обнуляешь

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

Whore Amazing
15.06.2017
09:35:37
чето не то как он будет увеличиваться, если ничего никуда не передавать?

глобальная переменная что ли?

Vasiliy
15.06.2017
09:36:07
какая глобальня переменная

Whore Amazing
15.06.2017
09:36:16
а что ты имеешь ввиду?

Vasiliy
15.06.2017
09:36:19
в функции каунтер, если через рекурсию делать, параметр

Whore Amazing
15.06.2017
09:36:56
вот ты пишешь, а понятнее не становится (с)

Vasiliy
15.06.2017
09:37:04
я рекурсию напишу, а ты если что перепиши на стек

def count_if(node, counter=0) if isinstance(node, IfNode): counter = counter + 1 node.counter = counter if isinstance(node, SubrootNode): counter = 0 for child in node.children: count_if(child, counter)

Whore Amazing
15.06.2017
09:41:38
а, эвон оно как спасибо

я хотел как-то по-другому сделать а об этом и не подумал даже да простит меня старик Оккам

пойду напишу на доске 10 00 раз KISS

Vasiliy
15.06.2017
09:43:40
ну вообще в зависимости от реализации мб правильнее будет делать через визитор

Google
Whore Amazing
15.06.2017
09:44:10
да, скорее всего но это уже слишком для моего мозга на сегодня как минимум надо сходить покурить

b0g3r
15.06.2017
10:03:49
Whore Amazing
15.06.2017
10:04:03
backticks

Вячеслав
15.06.2017
10:18:47
Отлично

Маришка
15.06.2017
10:19:44
Го

Вячеслав
15.06.2017
10:19:57
Го
шаришь

Маришка
15.06.2017
10:20:04
Отлично
Отличное место что бы проверять это есть у себя в лс

Aldar
15.06.2017
11:04:53
Боян, наверное, про фишки питона 3 http://asmeurer.github.io/python3-presentation/slides.html

Nikolay
15.06.2017
11:05:34
мы тут и так не держим тех, кто новые проекты на втором питоне пишет

Nikita Kurinnyi
15.06.2017
11:06:43
да ну, а совместимый считается? или нафиг?

Whore Amazing
15.06.2017
11:07:20
Нафиг.

Nikita Kurinnyi
15.06.2017
11:07:46
походу вы далеко от домашниш проектов не отходите

раз такие принципы

Aleksey
15.06.2017
11:09:53
Всем привет, кто то работал с pyspider?

Igor
15.06.2017
11:10:50
кто-то работал. а в чем вопрос

Страница 2958 из 9768