Property (@NotNull String name, boolean inherited, @Nullable TypeEvalContext context) { initLocalProperties(); final Property property = myLocalPropertyCache.get(name); if (property != null) { return property; } if (findMethodByName(name, false, context) != null || findClassAttribute(name, false, context) != null || ContainerUtil.notNullize(getOwnSlots()).contains(name)) { return null; } if (inherited) { for (PyClass cls : getAncestorClasses(context)) { final Property ancestorProperty = cls.findProperty(name, false, context); if (ancestorProperty != null) { return ancestorProperty; } } } return null; }