Bad-Coder
@Bad-Coder
Шарю в питоне как лох ой бох ой бог!

Почему возвращает {}?

class ParsingError(Exception):
    def __init__(self, _): self._ = _

class Var:
    _vars = {}

    def update(self, var):
        right = '"x: 1"'
        if ': ' in var: pointer = ': '
        elif ':' in var: pointer = ':'
        else: raise ParsingError('Cant parse var. Maybe you writed wrong syntax? ("{}") (Right: {})'.format(var, right))
        var = str(var)
        parsed = var.split(pointer)
        key = parsed[0]
        value = parsed[1]
        _pointer = '#'
        _n = ''
        _complex = 'j'
        null = None
        true = True
        false = False
        _null = 'None'
        _true = 'True'
        _false = 'False'
        if value == f'{_pointer}{_null}': self._vars[key] = null
        elif value == f'{_pointer}{_true}': self._vars[key] = true
        elif value == f'{_pointer}{_false}': self._vars[key] = false
        elif str(value).replace(_pointer, _n).isdigit() and str(value).startswith(_pointer): self._vars[key] = int(str(value).replace(_pointer, _n))
        elif str(str(value).replace(_pointer, _n).replace('.', '')).isdigit() and str(value).startswith(_pointer): self._vars[key] = float(str(value).replace(_pointer, _n))
        elif str(value).endswith(_complex) and str(value).startswith(_pointer): value = complex(str(value).replace(_pointer, _n))
        else: self._vars[key] = value

    @property
    def get(self): return dict(self._vars)

Vars = Var()
Vars.update('a: #50j')
print(Vars.get)

'''
TODO: Add str, int, float, complex, list, tuple, dict. Support all of them.
Added:
str,
int,
float,

'''


Почему возращает {}?
Строка где обрабатывает complex:
elif str(value).endswith(_complex) and str(value).startswith(_pointer): value = complex(str(value).replace(_pointer, _n))
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
Bad-Coder
@Bad-Coder Автор вопроса
Шарю в питоне как лох ой бох ой бог!
Решил проблему.
Строку где обрабатываеться complex изменить на:
elif str(value).endswith(_complex) and str(value).startswith(_pointer): self._vars[key] = complex(str(value).replace(_pointer, _n))

value = complex(str(value).replace(_pointer, _n))

На

self._vars[key] = complex(str(value).replace(_pointer, _n))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
31 июл. 2021, в 12:44
15000 руб./за проект
31 июл. 2021, в 12:18
5000 руб./за проект
31 июл. 2021, в 12:17
200000 руб./за проект