mypy

    0熱度

    1回答

    attrgetter函數可以根據您提供的參數返回不同的類型。如果您通過一個項目的迭代器,它將簡單地返回一個對象的給定字段;如果您將它傳遞給一個包含多個項目的迭代項,它將返回一個對象的這些字段的元組。 然而,使用類型提示+ MyPy時,這種差異不是由MyPy回升(這不引發錯誤): from operator import attrgetter class OneThing: foob

    2熱度

    1回答

    在Python 3,你可以添加說明,以你的函數參數: def foo(host: 'ip address for connection') cool_stuff() ,你還可以提供以後可以用mypy檢查預期的類型: def foo(host: str) cool_stuff() 兩者都是非常有用的我眼睛 - 有沒有辦法將兩者結合起來,仍然可以讓mypy檢查一致性?

    1熱度

    1回答

    根據mypy文檔,如果一個類需要引用它自己,它可以使用forward-reference。 這對於普通的類似乎很好,但我無法使用從NamedTuple繼承的類來處理它。 """ All this code runs without error on Python 3.6 The question is why the 'B' class' __add__ method raises an

    2熱度

    1回答

    我特林聲明下面的函數參數類型與typing模塊的類型:my_func import typing class A(object): pass class B(A): pass class C(B): pass def my_func(p: typing.Dict[A, str]) -> None: pass my_func({C: 'f

    1熱度

    1回答

    我正在使用Python3並剛剛學會如何使用mypy。我正在閱讀文檔(特別是this部分似乎相關),但無法找到我的問題的任何答案: 是可以爲類型定義一些快捷方式嗎? 例子: 不用編寫 from typing import List def f(x: List[int]) -> List[int]: return x[1:] 我想有 from typing import List

    1熱度

    1回答

    我試圖使用類型註釋來提高我的代碼清晰度。下面的代碼給出錯誤在PyCharm社區版2016年3月3日: #!python import typing class MyClass: def __init__(self, name: str) -> None: self.name = name backends: typing.Mapping[str, typing.

    2熱度

    1回答

    我正在使用各種存儲後端的框架。這些後端都實現了一個抽象基類。後端類存儲在從後端名稱到實現該後端的類的映射中。 我們希望能夠進行類型與mypy檢查和註釋如下: #!python import abc import typing class A(metaclass=abc.ABCMeta): # The abstract base class def __init__(self,

    24熱度

    3回答

    我注意到python 3.5和python 3.6增加了很多關於靜態類型檢查的功能,所以我嘗試了下面的代碼(在python 3.6中,穩定版本)。 from typing import List a: List[str] = [] a.append('a') a.append(1) print(a) 讓我吃驚的是,蟒蛇沒有給我一個錯誤或警告,雖然1被附加到list它應該只包含字符串。

    0熱度

    1回答

    我試圖用mypy鍵入PyQt5應用程序的代碼。但是我發現它不會檢查我定義的小部件類中的代碼。我寫了一個小示例應用程序,以瞭解什麼被檢查,哪些不被檢查。 from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, \ QSpinBox, QLabel def add_numbers(a: s

    2熱度

    1回答

    如何在類中定義一個函數,使函數的返回類型是'當前類' - 而不是基類。例如: Class Parent: def set_common_properties_from_string(input : str) -> <WHAT SHOULD BE HERE> # Do some stuff you want to do in all classes return sel