Advertisement
mirovlad

Насоки

Nov 10th, 2022 (edited)
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. Дадено:
  2. (1) дървото self.acc_tree
  3. (2) на юзъра изборите self.mapped_acc
  4. (3) Да се въведе нов речник от следното "нулeво" състояние self.acc_types = {
  5. '100': None,
  6. '100-1': None,
  7. … и т.н. всички сметки
  8. }
  9.  
  10. Искаме, като следваме логиката дето си написал на листа:
  11. * четеш индекс по индекс self.mapped_acc
  12. * за всеки индекс прочетен от self.mapped_acc попълваш типовете на неговите деца и родители в self.acc_types
  13.  
  14.  
  15. Например ако е дадено:
  16.  
  17. от юзъра:
  18. self.mapped_types = {
  19. '100': "DA",
  20. '300': "DP"
  21. }
  22.  
  23.  
  24. с "нулево" състояние:
  25. self.acc_types = {
  26. '10': None,
  27. '100': None,
  28. '100-1': None,
  29. '100-2': None
  30. '20': None,
  31. '200': None,
  32. '200-1': None,
  33. '200-2': None
  34. '30': None,
  35. '300': None,
  36. '300-1': None,
  37. '300-2': None
  38. ...
  39. }
  40.  
  41. трябва да напишем код, който:
  42. тръгва индекс по индекс през self.mapped_types
  43. Първо юзъра е казал че 100 е DA
  44. Значи:
  45. * Слагаме self.acc_types[100] = DA
  46. * По твоя лист виждаме, че трябва децата да станат също DA,
  47. ** затова питаме дървото кои са деца на 100, и ги сетваме в self.acc_types да станат и те DA:
  48. ** Слагаме self.acc_types[100-1] = DA
  49. ** Слагаме self.acc_types[100-2] = DA
  50. * По тоя лист виждаме че трябва с родителите еди-какво си да стане
  51. ** затова питаме дъврото кои са родителите, и ги сетваме в self.acc_types да станат и те каквоот трябва
  52. * и така нататък всичко каквото е по твоя лист
  53.  
  54. В крайна сметка self.acc_types ще достигне в желано "крайно" състояние:
  55. self.acc_types = {
  56. '10': None,
  57. '100': "DA",
  58. '100-1': "DA",
  59. '100-2': "DA",
  60. '20': None,
  61. '200': None,
  62. '200-1': None,
  63. '200-2': None
  64. '30': "DP",
  65. '300': "DP",
  66. '300-1': "DP",
  67. '300-2': "DP",
  68. ...
  69. }
  70.  
  71. Може даже първо някои неща ако в първия момент ти се виждат сложни, само да ги маркираш с print, за да се очертае "скелет" на задачата:
  72. for acc in self.mapped_acc:
  73. acc_type = self.mapped_acc[acc]
  74. print("TODO: В self.acc_types да маркираме децата")
  75. print("TODO: В self.acc_types да маркираме родителите по еди-какъв си начин")
  76. # ... и т.н. по твоя лист
  77.  
  78. После почваш да ги мислиш една по една, например единия принт в горния скелет може да се "материализира" така:
  79. for acc in self.mapped_acc:
  80. acc_type = self.mapped_acc[acc]
  81.  
  82. # "Материализация" на print("TODO: В self.acc_types да маркираме децата")
  83. acc_children = self.acc_tree.get_children(acc) # Питаме дървото кои са децата на acc
  84. for acc_child in acc_children: # Минаваме през всяко дете
  85. self.acc_types[acc_child] = acc_type # и му слагаме същия юзърски тип
  86.  
  87. print("TODO: В self.acc_types да маркираме родителите по еди-какъв си начин")
  88. # ... и т.н. по твоя лист
  89.  
  90.  
  91. Докато го правиш всичко това може да станат появят и някакви изводи -- дали нещо е излишно, или трябва някои неща да се слеят, или пък да се отделят...
  92.  
  93.  
  94.  
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement