Форум сайта python.su
terabaytТам, по-моему, не s, а v было. s я ставлю как мнемоническую форму string обычно, а v - как мнемоническу форму value.
если я не ошибась, то что-то наподобии
Отредактировано py.user.next (Апрель 24, 2015 00:18:29)
Офлайн
skripka696Желательно начать с дописывания предложения. Будет проверять и если введено не целое число то БУДЕТ СДЕЛАНО ТОТО И ТОТО иначе ИНОЕ БУДЕТ СДЕЛАНО.
ну к примеру, который будет проверять числ введенное с клавиатуры на то int это или нет.
try: i=int(input_string) except: ......
Офлайн
terabayt
py.user.next
У меня смысл был не в валидаторе а в парсере, вот какой код я сделала, но его еще переделывать надо. Мне сказали что парсер не правильно работает.
import argparse class valid_float(): def __init__(self, data): try: type(data) print "Введенное значенение соответствует типу float" except: print "Введенное значение НЕ соответствует типу float" class valid_str(): def __init__(self, data): try: str(data) print "Введенное значенение соответствует типу str" except: print "Введенное значение НЕ соответствует типу str" class valid_int(): def __init__(self, data): try: int(data) print "Введенное значенение соответствует типу int" except: print "Введенное значение НЕ соответствует типу int" class valid_isoDate(): def __init__(self,data): date = data.split('-') if (len(date[0]) == 4) and ((len(date[1]) == 2)) and (len(date[2]) == 2): print 'Введенные данные соответствуют IsoDate' else: print 'Введенные данные НЕ соответствуют IsoDate' class valid_csv(): def __init__(self,data): data = data.split(',') if (len(data)>1): print 'Введенные данные соответствуют Comma-Separated Values' else: print 'Введенные данные НЕ соответствуют Comma-Separated Values' class check_data(argparse.Action): def __init__(self, option_strings, dest, nargs=None, **kwargs): super(check_data, self).__init__(option_strings, dest, nargs, **kwargs) def __call__(self, parser, namespace, values, option_string=None): setattr(namespace, self.dest, values) parser = argparse.ArgumentParser() parser.add_argument('--d', action = check_data , dest='Data', nargs='+' , type = valid_csv) args = parser.parse_args()
Отредактировано skripka696 (Апрель 26, 2015 22:13:28)
Офлайн
У меня просто изначальный ступор был, надо было с чего то начать!
Офлайн
skripka696Все такие определенияclass valid_float():
class ValidFloat(object):
class ValidFloat:
skripka696Ну, вот эти валидаторы, во-первых, должны быть в виде методов в одном классе Validator, а во-вторых, они у тебя неправильно проверяют.
Мне сказали что парсер не правильно работает.
skripka696И парсер неправильно работает. Вообще неясно, зачем там действие создаётся, если по дефолту это всё можно собрать простенько.
Мне сказали что парсер не правильно работает.
Отредактировано py.user.next (Апрель 27, 2015 06:45:25)
Офлайн