簡體   English   中英

如何處理已驗證的 mypy 可選屬性?

[英]How to handle mypy optional property which has already been validated?

我有以下代碼:

    @property
    def is_idle(self) -> bool:
        return self.current_activity is None

    def tick(self) -> None:
        if self.is_idle:
            return

        self.current_activity.tick()

但是 mypy 對此並不滿意,因為它不明白 is_idle 是否已經檢查了 current_activity 是否已定義。

MyPy 錯誤信息

你知道如何告訴 MyPy 我們確定這里定義了這個值嗎?

在這種特殊情況下,您可以插入一個斷言:

assert self.current_activity is not None

一般來說,這是不可能的,因為 MyPy 不會查看另一個名為 function 的內部。 所以你最終會重復你已經知道是真的assert

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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