Python 如何在decorator中获取参数类型提示?
我怎样才能做到以下几点:Python 如何在decorator中获取参数类型提示?,python,python-3.5,Python,Python 3.5,我怎样才能做到以下几点: import typing def needs_parameter_type(decorated): def decorator(*args): [do something with the *type* of bar (aka args[0]), some_class] decorated(*args) return decorator @needs_parameter_type def foo(bar: SomeC
import typing
def needs_parameter_type(decorated):
def decorator(*args):
[do something with the *type* of bar (aka args[0]), some_class]
decorated(*args)
return decorator
@needs_parameter_type
def foo(bar: SomeClass):
…
foo(…)
本用例旨在避免以下重复:
@needs_parameter_type(SomeClass)
def foo(bar: SomeClass):
…
这些内容存储在函数的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu注释
属性中,您可以通过以下方式访问它们:
def needs_parameter_type(decorated):
def decorator(*args):
print(decorated.__annotations__)
decorated(*args)
return decorator
@needs_parameter_type
def foo(bar: int):
pass
foo(1)
# {"bar": <class "int">}
def需要参数类型(装饰):
def装饰符(*args):
打印(装饰性注释)
装饰(*args)
返回装饰器
@需要参数类型
def foo(条形图:整数):
通过
傅(1)
#{“酒吧”:}
这些都存储在函数的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
属性中,您可以通过以下方式访问
def needs_parameter_type(decorated):
def decorator(*args):
print(decorated.__annotations__)
decorated(*args)
return decorator
@needs_parameter_type
def foo(bar: int):
pass
foo(1)
# {"bar": <class "int">}
def需要参数类型(装饰):
def装饰符(*args):
打印(装饰性注释)
装饰(*args)
返回装饰器
@需要参数类型
def foo(条形图:整数):
通过
傅(1)
#{“酒吧”:}
你只是想确定类型或参数是否正确?@JackHoman Nope,比这更复杂。你只是想确定类型或参数是否正确?@JackHoman Nope,比这更复杂。