【发布时间】:2018-11-30 00:28:28
【问题描述】:
我有一个check_value 函数,它需要参数value 和value_type,将type(value) 与value_type 进行比较,并根据结果返回值或引发Exception。现在我想使用类型提示来注释参数和返回类型。
def check_value(value: "value_type", value_type: type) -> "value_type":
if type(value) is value_type:
return value
else:
raise Exception(f"Value '{value}' should be of type '{value_type}' instead of type '{type(value)}'.")
if __name__ == '__main__':
print(check_value(2, int)) # works, returns
print(check_value(2, str)) # works, raises Exception
参数value_type的注解工作正常,但是forward referencingvalue_type作为类型提示(因为value/the returned value的类型是value_type类型)会在Pycharm_2018中引起警告。 1.4(见下图)。
这是 Pycharm 中的错误吗?我做错什么了吗?不能这样使用类型提示吗?
谢谢!
【问题讨论】:
标签: python python-3.x pycharm type-hinting