class 局部变量没有 pylint 警告 "Redefining built-in"
No pylint warning "Redefining built-in" for a class local variable
我遇到了这样一个 Django 模型:
class Car(models.Model):
type = CharField()
...
但是,pylint
不会发出任何关于重新定义内置函数 type
的警告。只有当我将它从 class 移出到全局范围 pylint
时才会对此发出警告,但不会在 class 内。这是预期的行为吗?如果是这样,我如何覆盖它以在 classes 或函数中显示警告?
VSCode 1.61.0
Ubuntu 20.04
Python 3.8.10
我会说这是正常行为,因为您没有在此处隐藏 type
因为你需要写类似 my_car.type
的东西来访问
type
属性所以没有风险。
如果您仍然希望 pylint 警告您,您可以添加 type
到 pylintrc
文件中的列表 bad-names
。它将引发 C0104: disallowed-name
消息。
没关系,即使你将type
等内置函数从class中重新定义到全局范围内,你仍然可以通过builtins.type
访问它在 Py3 和 __builtin__.type
在 Py2.
我遇到了这样一个 Django 模型:
class Car(models.Model):
type = CharField()
...
但是,pylint
不会发出任何关于重新定义内置函数 type
的警告。只有当我将它从 class 移出到全局范围 pylint
时才会对此发出警告,但不会在 class 内。这是预期的行为吗?如果是这样,我如何覆盖它以在 classes 或函数中显示警告?
VSCode 1.61.0
Ubuntu 20.04
Python 3.8.10
我会说这是正常行为,因为您没有在此处隐藏 type
因为你需要写类似 my_car.type
的东西来访问
type
属性所以没有风险。
如果您仍然希望 pylint 警告您,您可以添加 type
到 pylintrc
文件中的列表 bad-names
。它将引发 C0104: disallowed-name
消息。
没关系,即使你将type
等内置函数从class中重新定义到全局范围内,你仍然可以通过builtins.type
访问它在 Py3 和 __builtin__.type
在 Py2.