簡體   English   中英

在 Python 類型提示中區分類和對象

[英]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:
    # …

如您所見,我給了senderinstance相同的類型提示—— 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM