使用 Pylint 忽略特定的内置函数 "id" - Python
Ignore a specific builtin "id" using Pylint - Python
我想允许将 id 重新定义为通用 class 中的一个属性。
Pylint 将此错误捕获为:
bam_sdk\core_element.py:7:44: W0622: Redefining built-in 'id' (redefined-builtin)
我想允许“id”被覆盖,但不允许其他内置的像“int、str 等”。
有没有办法只针对这个特定值“id”禁用这个特定错误?
from typing import Optional
class Element:
counter = 1
def __init__(self, name: Optional[str], id: Optional[int]) -> None:
self.id = id if id else self.__class__.counter
self.name = name if name else f"{self.__class__.__name__}-{self.id}"
self.__class__.counter += 1
这不是它抱怨的属性;这是参数名称。标准约定是在名称后附加 _
以避免阴影。
def __init__(self, name: Optional[str], id_: Optional[int]) -> None:
self.id = id_ if id_ else self.__class__.counter
self.name = name if name else f"{self.__class__.__name__}-{self.id}"
self.__class__.counter += 1
我发现修改参数的值比使用条件表达式更简洁。
def __init__(self, name: Optional[str], id_: Optional[int]) -> None:
if id_ is None:
id_ = self.__class__.counter
if name is None:
name = f"{self.__class__.__name__}-{id_}"
self.id = id_
self.name = name
self.__class__.counter += 1
我想允许将 id 重新定义为通用 class 中的一个属性。
Pylint 将此错误捕获为:
bam_sdk\core_element.py:7:44: W0622: Redefining built-in 'id' (redefined-builtin)
我想允许“id”被覆盖,但不允许其他内置的像“int、str 等”。
有没有办法只针对这个特定值“id”禁用这个特定错误?
from typing import Optional
class Element:
counter = 1
def __init__(self, name: Optional[str], id: Optional[int]) -> None:
self.id = id if id else self.__class__.counter
self.name = name if name else f"{self.__class__.__name__}-{self.id}"
self.__class__.counter += 1
这不是它抱怨的属性;这是参数名称。标准约定是在名称后附加 _
以避免阴影。
def __init__(self, name: Optional[str], id_: Optional[int]) -> None:
self.id = id_ if id_ else self.__class__.counter
self.name = name if name else f"{self.__class__.__name__}-{self.id}"
self.__class__.counter += 1
我发现修改参数的值比使用条件表达式更简洁。
def __init__(self, name: Optional[str], id_: Optional[int]) -> None:
if id_ is None:
id_ = self.__class__.counter
if name is None:
name = f"{self.__class__.__name__}-{id_}"
self.id = id_
self.name = name
self.__class__.counter += 1