class 'Runattr' 的未解析属性引用 'cfg'
Unresolved attribute reference 'cfg' for class 'Runattr'
我声明了一个 class 如下:
class Runattr:
pass
run = Runattr()
run.cfg = 'some str'
当我试图在我的代码中进一步访问 run.cfg 时,PyCharm 给了我以下警告并且我无法自动完成 run.cfg:
未解析的属性引用 'cfg' for class 'Runattr' 检查信息:此检查检测应解析但未解析的名称。由于动态调度和鸭子类型,这在有限但有用的情况下是可能的。顶级项目和 class 级项目比实例项目得到更好的支持。
我是 classes 的新手。有人能告诉我为什么会看到这个警告吗?可以修改它来消除警告吗?
您必须在名为 cfg 的字段上声明
class Runattr:
cfg = ''
run = Runattr()
run.cfg = 'some str'
这只是一个 PyCharm 警告(不是错误!),因为它无法确定 class 是否真的应该有一个 cfg
属性。
假设您使用的是现代 Python 版本,请为此类字段添加注释:
class Runattr:
cfg: str # denotes there would/could be a string `cfg`
run = Runattr()
run.cfg = 'some str'
类 并且实例仍然可以具有任何属性(见鬼,你甚至可以 setattr(run, "oh this is fun", True)
来拥有一个不是有效 Python 标识符的属性),只是 IDE不能对这里的动态性质无限聪明。
我声明了一个 class 如下:
class Runattr:
pass
run = Runattr()
run.cfg = 'some str'
当我试图在我的代码中进一步访问 run.cfg 时,PyCharm 给了我以下警告并且我无法自动完成 run.cfg:
未解析的属性引用 'cfg' for class 'Runattr' 检查信息:此检查检测应解析但未解析的名称。由于动态调度和鸭子类型,这在有限但有用的情况下是可能的。顶级项目和 class 级项目比实例项目得到更好的支持。
我是 classes 的新手。有人能告诉我为什么会看到这个警告吗?可以修改它来消除警告吗?
您必须在名为 cfg 的字段上声明
class Runattr:
cfg = ''
run = Runattr()
run.cfg = 'some str'
这只是一个 PyCharm 警告(不是错误!),因为它无法确定 class 是否真的应该有一个 cfg
属性。
假设您使用的是现代 Python 版本,请为此类字段添加注释:
class Runattr:
cfg: str # denotes there would/could be a string `cfg`
run = Runattr()
run.cfg = 'some str'
类 并且实例仍然可以具有任何属性(见鬼,你甚至可以 setattr(run, "oh this is fun", True)
来拥有一个不是有效 Python 标识符的属性),只是 IDE不能对这里的动态性质无限聪明。