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,比这更复杂。