对于一般硬件类,我为物理设备设置了可选的占位符属性,这些属性在运行时可能是必需的.在使用PyCharm的IDE时,这与自动完成功能配合得很好.然而,调试控制台的自动完成功能似乎比IDE知道的少.

问:有没有一种方法可以在调试控制台中同时提供自动完成的已定义属性和未定义属性,即与IDE中的行为相同?

最小示例:

class OptionalAttributes:
    my_string: str
    my_predefined_str: str = "hello world"
  • Pycharm IDE:属性及其类型均可用于自动完成:

IDE knows both attributes IDE knows type of undefined attribute

  • Pycharm debug console:自动完成功能只知道预定义的属性.它不知道属性MY_STRING,也无法推断其类型.

Debug console does not know undefined attribute Debug console does not know the type of the attribute

推荐答案

如果我错了,请纠正我,但我相信变量注释声明不会初始化变量本身.它只是还不存在,所以PyCharm控制台看不到它.

班级中的__annotations__个班级都添加了注释:

print(OptionalAttributes.__annotations__)
{'my_string': <class 'str'>, 'my_predefined_str': <class 'str'>}

更多信息,请访问PEP 526.

更详细的答案在这里: https://stackoverflow.com/a/57081373/22542854

Python相关问答推荐

将列中的滚动值集转换为单元格中的单个值

预期LP_c_Short实例而不是_ctyles.PyCStructType

如何将uint 16表示为float 16

如何将带有逗号分隔的数字的字符串解析为int Array?

如何使用Selenium访问svg对象内部的元素

在Python中为变量的缺失值创建虚拟值

使用SciPy进行曲线匹配未能给出正确的匹配

由于NEP 50,向uint 8添加-256的代码是否会在numpy 2中失败?

max_of_three使用First_select、second_select、

如何在Python中将returns.context. DeliverresContext与Deliverc函数一起使用?

Python 约束无法解决n皇后之谜

如何让程序打印新段落上的每一行?

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

在Python中管理打开对话框

如果条件不满足,我如何获得掩码的第一个索引并获得None?

组/群集按字符串中的子字符串或子字符串中的字符串轮询数据框

Django REST Framework:无法正确地将值注释到多对多模型,不断得到错误字段名称字段对模型无效'<><>

NumPy中条件嵌套for循环的向量化

如何合并两个列表,并获得每个索引值最高的列表名称?

在Python 3中,如何让客户端打开一个套接字到服务器,发送一行JSON编码的数据,读回一行JSON编码的数据,然后继续?