Size: a a a

Сообщество Python Программистов

2021 January 19

А

Айван in Сообщество Python Программистов
456789 456789
Вот он нашёл о
С такой простыней на pastebin.com
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Айван
Мог бы тогда уж тайп хинты считывать)
Спейшол фо ю :3

import inspect

def validate(f):
   def wrapper(*args):
       fname = f.__name__
       fsig = inspect.signature(f)
       vars = ', '.join('{}={}'.format(*pair) for pair in zip(fsig.parameters, args))
       params={k:v for k,v in zip(fsig.parameters, args)}
       print('wrapped call to {}({})'.format(fname, params))
       for k, v in fsig.parameters.items():
           p=params[k]
           msg='call to {}({}): {} failed {})'.format(fname, vars, k, v.annotation.__name__)
           assert v.annotation(params[k]), msg
       ret = f(*args)
       print('  returning {} with annotation: "{}"'.format(ret, fsig.return_annotation))
       return ret
   return wrapper
источник

44

456789 456789 in Сообщество Python Программистов
Айван
С такой простыней на pastebin.com
Ок админ
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Айван
Мог бы тогда уж тайп хинты считывать)
Алсо есть вариант ещё проще:

def enforce(*types):
   def decorator(f):
       def new_f(*args, **kwds):
           #we need to convert args into something mutable  
           newargs = []        
           for (a, t) in zip(args, types):
              newargs.append( t(a)) #feel free to have more elaborated convertion
           return f(*newargs, **kwds)
       return new_f
   return decorator
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
Алсо есть вариант ещё проще:

def enforce(*types):
   def decorator(f):
       def new_f(*args, **kwds):
           #we need to convert args into something mutable  
           newargs = []        
           for (a, t) in zip(args, types):
              newargs.append( t(a)) #feel free to have more elaborated convertion
           return f(*newargs, **kwds)
       return new_f
   return decorator
но тут кривовато, на самом деле
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Айван
Мог бы тогда уж тайп хинты считывать)
и на десерт
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
ИМХО самый более-менее ок вариант
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
Мне страшно что ты там на проде херачить будешь)
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
𝕬𝖗𝖙𝖊𝖒
Мне страшно что ты там на проде херачить будешь)
на проде будет говно, конечно же!))
источник

R3

Rud 356 in Сообщество Python Программистов
А почому не singledispatch?🌚
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Rud 356
А почому не singledispatch?🌚
перепиши на синглдиспатч
источник

R3

Rud 356 in Сообщество Python Программистов
Ну чекни как оно, а я спать. Там приколы можно творить с его помощью, как с перегрузками на си крестах, ищи в functools для 3.8
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
Этот опрос будет легендарным.
Анонимный опрос
57%
EAFP
43%
LBYL
Проголосовало: 7
источник

44

456789 456789 in Сообщество Python Программистов
Да
источник

44

456789 456789 in Сообщество Python Программистов
Бензофуран Гетероцикл
но тут кривовато, на самом деле
Да
источник

А

Айван in Сообщество Python Программистов
Я причём здесь? Я ничего не спрашивал
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Айван
Мог бы тогда уж тайп хинты считывать)
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
Айван
Я причём здесь? Я ничего не спрашивал
Ой, не того пинганул, сорь
источник

А

Айван in Сообщество Python Программистов
𝕬𝖗𝖙𝖊𝖒
Этот опрос будет легендарным.
Анонимный опрос
57%
EAFP
43%
LBYL
Проголосовало: 7
Я не помню что есть что
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
𝕬𝖗𝖙𝖊𝖒
Можно делать:
try:
  int(var)
except ValueError:
  pass
else:
  ...


А можно
if var.isdigit(): # или что-то в этом духе
   ...
источник