问题描述
给出这两个类:
class MyClass(ABC):
@abstractmethod
def my_method(self,my_parameter: str):
pass
class MySecondClass(MyClass):
def my_method(self,my_parameter):
pass
在my_parameter
的{{1}}中的my_method
是否具有基于PEP 484的推断类型MySecondClass
或Any
?在链接文档中找不到详细说明上述内容的示例。
解决方法
它是DECLARE @FormulaString NVARCHAR(100) = 'SELECT @a + @b';
EXEC sp_executesql @FormulaString,N'@a int,@b int',@a=3,@b=6;
。您可以通过运行mypy进行尝试:
Any
With或without --check-untyped-defs
flag,这会通过类型检查,并且reveal_type
报告from abc import ABC,abstractmethod
class MyClass(ABC):
@abstractmethod
def my_method(self,my_parameter: str):
pass
class MySecondClass(MyClass):
def my_method(self,my_parameter):
reveal_type(my_parameter)
pass
MySecondClass().my_method(3)
作为类型。 (没有该标志,方法主体的类型检查也将被跳过。)
请注意,即使具有注释,只要覆盖方法的签名更宽松,则允许覆盖方法具有与覆盖方法不同的签名即可。例如,采用Any
的方法可以覆盖采用Animal
的方法。