fesenkokd / python2024_fesenko

Fesenko Kirill
GNU General Public License v3.0
0 stars 0 forks source link

026.generators #8

Open alsigna opened 1 week ago

alsigna commented 1 week ago

@fesenkokd

Task1

Нет комментариев, все ок, спасибо.

Task2

Не хватает пробелов вот тут вокруг операторов, в остальном все хорошо. Спасибо

               exit = "exit\n"*multip
               yield exit+line.strip()
alsigna commented 1 week ago

@fesenkokd хотя нет, в Task2 есть проблема: multip = num_space_prev - num_space тут вы смешиваете количество пробелов перед строкой и количество пробелов, которое используется для сдвига блока (indentation). Это будет давать корректный результат только если количество пробелов для сдвига блока равно 1. Если будет другое число, например 2, тогда multip = num_space_prev - num_space превратиться в multip = 4 - 2 и для выхода из блока (например блока настройки интерфейса) у вас будет добавляться два exit: exit = "exit\n" * 2. Будет что-то типа такого:

ip forward-protocol nd
no ip http server
interface Vlan1
ip address 192.168.1.1 255.255.255.0
no shutdown
exit
exit
router bgp 64512
bgp router-id 192.168.1.1
bgp log-neighbor-changes
address-family ipv4
redistribute connected route-map LAN
exit
exit
address-family vpnv4 unicast
neighbor 1.2.3.4 activate
exit
exit
exit
exit
line vty 0 4
password cisco
exit