A Zope website is composed of objects as opposed to files, as is usual with many other web server systems. The advantage of using objects instead of files is that objects:
- combine behavior and data in a more natural way than flat textfiles.
- encourage the use of standard components which take care of one particular part of what makes a web application, allowing for flexibility and good decomposition.
Zope comes with the Zope Object Database (ZODB), which transparently persists (Python) objects in a transactional database.
One particular innovative feature of Zope is its real world use of acquisition, a programming technique orthogonal to inheritance in object oriented programming. In acquisition, objects 'inherit' behavior from their context in a composition hierarchy, as opposed their class in a class hierarchy. This allows certain ways to structure source code that are otherwise harder to accomplish, and can encourage application decomposition. A common use is in structuring the way layout elements are used in a web page.