
Anton
15.06.2017
09:13:09

Whore Amazing
15.06.2017
09:14:05

Anton
15.06.2017
09:14:44

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
прошу прощения
я ваших матанов не учил
можно по-русски?

Anton
15.06.2017
09:18:06

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

Anton
15.06.2017
09:20:08

Whore Amazing
15.06.2017
09:20:56

Anton
15.06.2017
09:21:53
типа root

Google

Whore Amazing
15.06.2017
09:22:37

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

Anton
15.06.2017
09:26:14

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

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

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

Whore Amazing
15.06.2017
09:27:01

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

Anton
15.06.2017
09:27:26
не в едином самом корневом корне

Whore Amazing
15.06.2017
09:27:43

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

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

Whore Amazing
15.06.2017
09:29:05

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

Anton
15.06.2017
09:29:20

Whore Amazing
15.06.2017
09:29:21
ща

Whore Amazing
15.06.2017
09:29:28

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
да, скорее всего
но это уже слишком для моего мозга на сегодня
как минимум надо сходить покурить

Вячеслав
15.06.2017
10:02:47

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
кто-то работал. а в чем вопрос