Python 如何查看一个变量的类型注释信息?

Python 如何查看一个变量的类型注释信息?

我本以为 Pythontyping 只是一个注释,但是因为 pydantic 可以校验变量的类型,显然这个 typing 不仅仅是一个注释这么简单,pydantic 是怎么发现一个变量的类型注释是 str 还是 int 还是 list 呢?我们又该如何通过代码知道一个对象的类型注释是什么?

pydantic 文档

from datetime import datetime

from 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

回到顶部