问题描述
Python Lint 不会检测到错误的类成员。它继续运行我的代码,我在下面有 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 中的问题。
顺便说一句,与评论中所说的相反,您的代码是有意义的。唯一的事情是你不必在 python 中做显式的 getter/setter。您可以拥有公共属性:
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
。