| t | _sentinel = object() | t | _sentinel = object() |
| | | |
| class Sequence: | | class Sequence: |
| | | |
| def __init__(self, value=_sentinel): | | def __init__(self, value=_sentinel): |
| if value is _sentinel: | | if value is _sentinel: |
| value = [] | | value = [] |
| self._set_sequence(value) | | self._set_sequence(value) |
| | | |
| def _set_sequence(self, value): | | def _set_sequence(self, value): |
| if hasattr(value, '__getitem__'): | | if hasattr(value, '__getitem__'): |
| self._sequence = value | | self._sequence = value |
| else: | | else: |
| self._sequence = [value] | | self._sequence = [value] |
| self._sequence_type = type(self._sequence) | | self._sequence_type = type(self._sequence) |
| | | |
| @property | | @property |
| def sequence(self): | | def sequence(self): |
| return self._sequence | | return self._sequence |
| | | |
| @sequence.setter | | @sequence.setter |
| def sequence(self, value): | | def sequence(self, value): |
| self._set_sequence(value) | | self._set_sequence(value) |
| | | |
| @sequence.deleter | | @sequence.deleter |
| def sequence(self): | | def sequence(self): |
| try: | | try: |
| self._sequence = self._sequence_type() | | self._sequence = self._sequence_type() |
| except Exception: | | except Exception: |
| self._sequence = None | | self._sequence = None |
| self._sequence_type = type(self._sequence) | | self._sequence_type = type(self._sequence) |
| '\na, b, c = Sequence(), Sequence("wer"), Sequence(100)\nprint(a.sequenc | | '\na, b, c = Sequence(), Sequence("wer"), Sequence(100)\nprint(a.sequenc |
| e, b.sequence, c.sequence)\na.sequence.append(5)\nb.sequence += "QQ"\nc. | | e, b.sequence, c.sequence)\na.sequence.append(5)\nb.sequence += "QQ"\nc. |
| sequence += (2, 3)\nprint(a.sequence, b.sequence, c.sequence, sep="|")\n | | sequence += (2, 3)\nprint(a.sequence, b.sequence, c.sequence, sep="|")\n |
| del a.sequence, b.sequence, c.sequence\nprint(a.sequence, b.sequence, c. | | del a.sequence, b.sequence, c.sequence\nprint(a.sequence, b.sequence, c. |
| sequence, sep="|")\n' | | sequence, sep="|")\n' |