类“Runattr”的未解析属性引用“cfg”

2024-10-01 22:37:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我声明了一个类,如下所示:

class Runattr:
    pass

run = Runattr()
run.cfg = 'some str'

当我试图在代码中进一步访问run.cfg时,PyCharm向我发出以下警告,我无法自动完成run.cfg:

类“Runattr”检查信息的未解析属性引用“cfg”:此检查检测应解析但不解析的名称。由于动态分派和duck类型,这在数量有限但有用的情况下是可能的。顶级和类级项目比实例项目更受支持

我不熟悉使用课堂。有人能告诉我为什么我会看到这个警告吗?是否可以修改它以消除警告


Tags: 项目run代码名称信息声明警告属性
2条回答

这只是一个PyCharm警告(不是错误!),因为它无法确定该类是否真的应该具有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不能无限聪明地理解这里的动态特性

您必须在名为cfg的字段上声明

class Runattr:
    cfg = ''

run = Runattr()
run.cfg = 'some str'

相关问题 更多 >

    热门问题