44
Size: a a a
44
44
ᅠ
ᅠ
44
44
БГ

def accepts(*types):
def check_accepts(f):
assert len(types) == f.__code__.co_argcount
def new_f(*args, **kwds):
for (a, t) in zip(args, types):
if not isinstance(a, t):
raise TypeError(
"{} type(s) expexted, got {}".format(
', '.join(map(type, types)),
type(a)
))
return f(*args, **kwds)
new_f.__name__ = f.__name__
return new_f
return check_accepts𝕬

def accepts(*types):
def check_accepts(f):
assert len(types) == f.__code__.co_argcount
def new_f(*args, **kwds):
for (a, t) in zip(args, types):
if not isinstance(a, t):
raise TypeError(
"{} type(s) expexted, got {}".format(
', '.join(map(type, types)),
type(a)
))
return f(*args, **kwds)
new_f.__name__ = f.__name__
return new_f
return check_acceptsᅠ
ЕО

def accepts(*types):
def check_accepts(f):
assert len(types) == f.__code__.co_argcount
def new_f(*args, **kwds):
for (a, t) in zip(args, types):
if not isinstance(a, t):
raise TypeError(
"{} type(s) expexted, got {}".format(
', '.join(map(type, types)),
type(a)
))
return f(*args, **kwds)
new_f.__name__ = f.__name__
return new_f
return check_acceptsА
А
А

def accepts(*types):
def check_accepts(f):
assert len(types) == f.__code__.co_argcount
def new_f(*args, **kwds):
for (a, t) in zip(args, types):
if not isinstance(a, t):
raise TypeError(
"{} type(s) expexted, got {}".format(
', '.join(map(type, types)),
type(a)
))
return f(*args, **kwds)
new_f.__name__ = f.__name__
return new_f
return check_accepts𝕬
БГ

def accepts(*types):
def check_accepts(f):
assert len(types) == f.__code__.co_argcount
def new_f(*args, **kwds):
for (a, t) in zip(args, types):
if not isinstance(a, t):
raise TypeError(
"{} type(s) expexted, got {}".format(
', '.join(map(type, types)),
type(a)
))
return f(*args, **kwds)
new_f.__name__ = f.__name__
return new_f
return check_acceptsБГ
БГ
func.__annotations__, но тогда надо будет повторять всю логику питона по рассовыванию значений в переменные𝕬
func.__annotations__, но тогда надо будет повторять всю логику питона по рассовыванию значений в переменныеБГ
44