VSCode PyLint 未检测到我的 Python DTO Class 成员
VSCode PyLint Not detecting my Python DTO Class Members
Python Lint 不会检测到不正确的 class 成员。它继续 运行 我的代码,我在下面有 productName 成员,而不是 productNameTest。它应该发送一个错误。如何解决?目前正在使用 VS Code。
产品型号:
@dataclass(init=False)
class ProductModel:
productId: int
productName: str
产品服务:
class ProductService:
def __init__(self, productModel: ProductModel):
self.productModel= productModel
def getProductModel(self, curveData):
self.productModel.productNameTest = "ABCD" # productNameTest is not a member and should be giving error
第一个问题很好:)
这看起来像是 pylint 中的假阴性(对数据的理解不好 类 ?),您可以打开一个错误或拉取请求来解决 pylint's github.[=15= 中的问题]
顺便说一句,与评论中所说的相反,您的代码是有道理的。唯一的问题是您不必在 python 中显式地执行 getter/setter。你可以有 public 属性:
class ProductService:
def __init__(self, product_model: ProductModel):
self.product_model= product_model
或私有属性...
class ProductService:
def __init__(self, productModel: ProductModel):
self.__product_model= product_model
@property
def product_model(self):
return self.__product_model
@product_model.setter
def product_model(self, value):
self.__product_model = value
在这两种情况下,调用代码都是 obj.product_model
或 obj.product_model = new_value
。
Python Lint 不会检测到不正确的 class 成员。它继续 运行 我的代码,我在下面有 productName 成员,而不是 productNameTest。它应该发送一个错误。如何解决?目前正在使用 VS Code。
产品型号:
@dataclass(init=False)
class ProductModel:
productId: int
productName: str
产品服务:
class ProductService:
def __init__(self, productModel: ProductModel):
self.productModel= productModel
def getProductModel(self, curveData):
self.productModel.productNameTest = "ABCD" # productNameTest is not a member and should be giving error
第一个问题很好:)
这看起来像是 pylint 中的假阴性(对数据的理解不好 类 ?),您可以打开一个错误或拉取请求来解决 pylint's github.[=15= 中的问题]
顺便说一句,与评论中所说的相反,您的代码是有道理的。唯一的问题是您不必在 python 中显式地执行 getter/setter。你可以有 public 属性:
class ProductService:
def __init__(self, product_model: ProductModel):
self.product_model= product_model
或私有属性...
class ProductService:
def __init__(self, productModel: ProductModel):
self.__product_model= product_model
@property
def product_model(self):
return self.__product_model
@product_model.setter
def product_model(self, value):
self.__product_model = value
在这两种情况下,调用代码都是 obj.product_model
或 obj.product_model = new_value
。