我喜欢 Pylance 中的类型检查器(VS Code),但似乎有一种情况我必须在忽略 Pylance 警告和类变量声明的最佳实践之间进行选择。很多时候,类变量是使用None类构造函数中的类型来初始化的,然后再设置该变量。例如:
class Person:
def __init__(self) -> None:
self.name:str = None
def setName(self, name:str) -> None:
self.name = name
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Pylance 在作业中给出以下错误self.name:str = None:
Cannot assign member "name" for type "Person"
Expression of type "None" cannot be assigned to member "name" of class "Person"
Type "None" cannot be assigned to type "str"
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以self.name在构造函数中声明不需要值并且Pylance 满意的方式?
编辑:一些人建议使用typing.Optional来抑制此 Pylance 警告。但是,如果创建另一个成员函数来返回self.name并保证它返回 的实例str,则会生成另一个 Pylance 错误。请参见以下示例:
class Person:
def …Run Code Online (Sandbox Code Playgroud)