Python、Pycharm 从动态变量中获取代码补全

Posted

技术标签:

【中文标题】Python、Pycharm 从动态变量中获取代码补全【英文标题】:Python, Pycharm get code completion from dynamic variables 【发布时间】:2022-01-20 22:18:01 【问题描述】:
class FooBar:
    attribute_map = 
        "foo": "bar",
        "bar": "foo"
    

    def __init__(self):
        setattr(self, "foo", "bar")
        setattr(self, "bar", "foo")


foo_bar = FooBar()
print(foo_bar.foo)
print(foo_bar.bar)

我的代码看起来像这样。我希望 pycharm 使用属性映射来显示动态变量 foo 和 bar 的自动完成。这可能吗?

【问题讨论】:

【参考方案1】:

不,这是不可能的。 PyCharm 的自动补全不支持动态设置属性。

您可以像这样进行类型注释:

class FooBar:
    foo: str
    bar: str

    attribute_map = 
        "foo": "bar",
        "bar": "foo"
    

    def __init__(self):
        setattr(self, "foo", "bar")
        setattr(self, "bar", "foo")


foo_bar = FooBar()
print(foo_bar.foo)
print(foo_bar.bar)

【讨论】:

以上是关于Python、Pycharm 从动态变量中获取代码补全的主要内容,如果未能解决你的问题,请参考以下文章

pycharm如何在debug的时候动态执行python语句

如何给pycharm 设置环境变量

Python从入门到进阶5变量的定义及数据类型

Python从入门到进阶5变量的定义及数据类型

PyCharm中Python代码提示:Shadows name from outer scope

pdb 调试+ PyCharm+PyDev 调试