在PyCharm控制台中加载智能代码完成窗口时,将执行用@property和@cached_property装饰的Python类函数

问题描述

当PyCharm python控制台加载代码完成建议窗口时,将执行以@property装饰的函数。使用@cached_property装饰器引入的Python 3.8 functools也会发生这种情况。为什么会发生这种情况,并且有办法禁用这种行为?我非常希望仅通过浏览对象的公共字段就不能加载缓存的属性

一个具体的例子,请考虑此类:

from functools import cached_property

class Simple:
    
    @property
    def prop1(self):
        print('property 1!')
        return 1

    @cached_property
    def prop2(self):
        print('property 2!')
        return 2

在python控制台中创建此对象后

s = Simple()

,只需键入

s.

打印语句被执行,我们得到以下输出

property 1!
property 2!

为什么会发生这种情况,并且有一种方法可以禁用此行为?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...