Python 如何查看一个变量的类型注释信息?
我本以为 Python
的 typing
只是一个注释,但是因为 pydantic
可以校验变量的类型,显然这个 typing
不仅仅是一个注释这么简单,pydantic
是怎么发现一个变量的类型注释是 str
还是 int
还是 list
呢?我们又该如何通过代码知道一个对象的类型注释是什么?
pydantic 文档
from datetime import datetimefrom typing import List, Optional
from pydantic import BaseModel
class User(BaseModel):
id: int
name = 'John Doe'
signup_ts: Optional[datetime] = None
friends: List[int] = []
external_data = {
'id': '123',
'signup_ts': '2019-06-01 12:22',
'friends': [1, 2, '3'],
}
user = User(**external_data)
print(user.id)
#> 123
print(repr(user.signup_ts))
#> datetime.datetime(2019, 6, 1, 12, 22)
print(user.friends)
#> [1, 2, 3]
print(user.dict())
"""
{
'id': 123,
'signup_ts': datetime.datetime(2019, 6, 1, 12, 22),
'friends': [1, 2, 3],
'name': 'John Doe',
}
"""
回答:
方法、类及对象是有一个属性叫做 __annotations__
,可以得到类型注释。比如:
python3">def add(a: int, b: int) -> int: return a + b
add.__annotations__ # => {'a': int, 'b': int, 'return': int}
以上是 Python 如何查看一个变量的类型注释信息? 的全部内容, 来源链接: utcz.com/p/938185.html