Форум сайта python.su
RodegastЭто не смена названия на более понятное, это поднятие на более высокий уровень абстракции того действия, которое производится. Это как в математике есть абстрактные понятия +бесконечность и -бесконечность. Мы не знаем, что это, но мы можем с этим работать. И тут мы не знаем, как эти данные, полученные от устройства, сегодня или гипотетически завтра будут проверяться, но мы уже работаем с результатом этой проверки, как бы они ни проверялись, и работаем вполне успешно.
Ты каждый из них будешь в функцию оборачивать что бы название поменять?
RodegastЯ тебе скажу больше: когда ты умеешь это делать, у тебя это делается в голове - то, чего у него даже близко в коде нет. Поэтому я просто разработал в голове ту программу, которая ему нужна, от начала до конца, потому что умею их разрабатывать. У меня есть этот набор навыков, и они постоянно срабатывают в воображении. Соответственно, я просто сверху вниз эту программу разработал и посмотрел, насколько его эта написанная программа близка к тому, что должно быть. Поэтому я знаю, какие методы должны быть у него в программе. И поэтому я знаю, что эта проверка данных должна быть вынесена, так как она отчётливо проводится как шаг алгоритма с предусловием и постусловием в той программе, которая у меня уже полностью написана в уме.
Видел сколько там методов?
Отредактировано py.user.next (Апрель 2, 2021 13:51:40)
Офлайн
> это поднятие на более высокий уровень абстракции того действия
Вот этого я как раз и не увидел. У тебя как был вызов одного метода так он и остался.
Офлайн
RodegastВот об этом я тебе и говорю. Ты не знаешь даже, что такое уровни абстракции. Ты думаешь, что ты понимаешь ООП, но ты не понимаешь его. Поэтому-то ты и написать ничего не можешь. Не потому, что это сложно, а потому, что ты не умеешь это. Ты думал, что синтаксис языка выучишь и так ООП поймёшь? Ну, поздравляю, синтаксис языка, слово class и даже запуск этого всего никак тебя к ООП не приближает. Ты как не умел ничего строить, так и не умеешь. Уровни абстракции есть не только в ООП. И вообще их не в программировании придумали, они были ещё до него.
Вот этого я как раз и не увидел. У тебя как был вызов одного метода так он и остался.
Офлайн
> Ты не знаешь даже, что такое уровни абстракции.
Ты не поверишь, но я в курсе не только того что такое абстракция, но даже прости Господи манадами пользуюсь. Так что вангуешь ты весьма плохо. Ну и да твоя функция не только написана не аккуратно, но и бессмысленна с точки зрения абстракций, во всяком случае в таком виде.
Офлайн
Всем доброго вечера, был в отъезде, спасибо за ответы, но я так и не понял как лучше сделать?
Мусор там бывает только видов: 1q80, #1180, 11\xf80.
out_srt = out.decode('сюда_вписать_кодировку_в_которой_вы_получаете_данные') # тут вы можете поймать исключение если у вас там будет таки реальный "мусор", поэтому лучше вставить его в блок try-excrpt и отслеживать DecodeError if out_str.isdigit(): #тут пишем в БД else: #тут не пишем в БД
serial.serialutil.SerialException: could not open port 'COM3': PermissionError(13, 'Отказано в доступе.', None, 5)
Отредактировано staxbel (Апрель 4, 2021 22:31:27)
Офлайн
> Мусор там бывает только видов: 1q80, #1180, 11\xf80.
Откуда он берётся? Приведи пример сообщения которое приходит.
Офлайн
b' 1180'
Данные изменены 2021-04-04 22:51:02.401196
b' 118<'
Данные изменены 2021-04-04 22:51:03.775275
b' 118\x98'
Офлайн
> когда прибор один подключен, все ок, но когда параллельно их несколько, получается такой мусор.
Если это из за помех, наводок и прочего, то можно этот “мусор” отфильтровывать.
>>> int(bytearray( x for x in b' 118\x98' if 47 < x < 58 )) 118
Офлайн
Rodegast1180 не постоянное значение, оно меняется.
> когда прибор один подключен, все ок, но когда параллельно их несколько, получается такой мусор.Если это из за помех, наводок и прочего, то можно этот “мусор” отфильтровывать.
Офлайн
> 1180
В таком случае ты не можешь гарантировать что с устройства вообще приходит правильное значение. По какому протоколу оно подключено? Контроль чётности используется?
Офлайн