Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Дадено:
- (1) дървото self.acc_tree
- (2) на юзъра изборите self.mapped_acc
- (3) Да се въведе нов речник от следното "нулeво" състояние self.acc_types = {
- '100': None,
- '100-1': None,
- … и т.н. всички сметки
- }
- Искаме, като следваме логиката дето си написал на листа:
- * четеш индекс по индекс self.mapped_acc
- * за всеки индекс прочетен от self.mapped_acc попълваш типовете на неговите деца и родители в self.acc_types
- Например ако е дадено:
- от юзъра:
- self.mapped_types = {
- '100': "DA",
- '300': "DP"
- }
- с "нулево" състояние:
- self.acc_types = {
- '10': None,
- '100': None,
- '100-1': None,
- '100-2': None
- '20': None,
- '200': None,
- '200-1': None,
- '200-2': None
- '30': None,
- '300': None,
- '300-1': None,
- '300-2': None
- ...
- }
- трябва да напишем код, който:
- тръгва индекс по индекс през self.mapped_types
- Първо юзъра е казал че 100 е DA
- Значи:
- * Слагаме self.acc_types[100] = DA
- * По твоя лист виждаме, че трябва децата да станат също DA,
- ** затова питаме дървото кои са деца на 100, и ги сетваме в self.acc_types да станат и те DA:
- ** Слагаме self.acc_types[100-1] = DA
- ** Слагаме self.acc_types[100-2] = DA
- * По тоя лист виждаме че трябва с родителите еди-какво си да стане
- ** затова питаме дъврото кои са родителите, и ги сетваме в self.acc_types да станат и те каквоот трябва
- * и така нататък всичко каквото е по твоя лист
- В крайна сметка self.acc_types ще достигне в желано "крайно" състояние:
- self.acc_types = {
- '10': None,
- '100': "DA",
- '100-1': "DA",
- '100-2': "DA",
- '20': None,
- '200': None,
- '200-1': None,
- '200-2': None
- '30': "DP",
- '300': "DP",
- '300-1': "DP",
- '300-2': "DP",
- ...
- }
- Може даже първо някои неща ако в първия момент ти се виждат сложни, само да ги маркираш с print, за да се очертае "скелет" на задачата:
- for acc in self.mapped_acc:
- acc_type = self.mapped_acc[acc]
- print("TODO: В self.acc_types да маркираме децата")
- print("TODO: В self.acc_types да маркираме родителите по еди-какъв си начин")
- # ... и т.н. по твоя лист
- После почваш да ги мислиш една по една, например единия принт в горния скелет може да се "материализира" така:
- for acc in self.mapped_acc:
- acc_type = self.mapped_acc[acc]
- # "Материализация" на print("TODO: В self.acc_types да маркираме децата")
- acc_children = self.acc_tree.get_children(acc) # Питаме дървото кои са децата на acc
- for acc_child in acc_children: # Минаваме през всяко дете
- self.acc_types[acc_child] = acc_type # и му слагаме същия юзърски тип
- print("TODO: В self.acc_types да маркираме родителите по еди-какъв си начин")
- # ... и т.н. по твоя лист
- Докато го правиш всичко това може да станат появят и някакви изводи -- дали нещо е излишно, или трябва някои неща да се слеят, или пък да се отделят...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement