[英]Differentiate class and object in Python type hints
Django 的post_save
信號發送一個模型類參數 - sender
- 以及正在保存的實際實例 - instance
。
有沒有辦法在類型提示中區分兩者?
我們有一個模型User
並想創建一個post_save
信號:
# …
@receiver([post_save], sender=User)
def send_activation_email(
sender: User,
instance: User,
# …
) -> None:
# …
如您所見,我給了sender
和instance
相同的類型提示—— User
。 但它們不是同一類型。 第一個是類,第二個是對象。 那么,有沒有辦法區分這兩者呢?
您正在尋找的是typing.Type
。
from typing import Type
# …
@receiver([post_save], sender=User)
def send_activation_email(
sender: Type[User],
instance: User,
# …
) -> None:
# …
由於@Michael0x2a 的評論,這個答案是為了清晰和可讀性而發布的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.