【发布时间】:2021-10-23 23:36:37
【问题描述】:
通过使用装饰器,我可以检查函数的变量类型。像这样的:
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):
assert isinstance(a, t), \
"arg %r does not match %s" % (a,t)
return f(*args, **kwds)
new_f.__name__ = f.__name__
return new_f
return check_accepts
@accepts(int, (int,float))
def func(arg1, arg2):
return arg1 * arg2
func(3, 2) # -> 6
func('3', 2) # -> AssertionError: arg '3' does not match <type 'int'>
它适用于普通的简单。但我不知道如何在课堂上使用它:
class Test()
@accepts(pd.DataFrame)
def print_dataframe(df):
print(df)
我无法初始化新课程并使用它。 请教我如何使用它
【问题讨论】: