O'Reilly logo

Python Programming On Win32 by Mark Hammond, Andy Robinson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Policies

PythonCOM policies are an advanced topic and typically don’t need to be understood to successfully use Python and COM. However, if you need to perform advanced techniques using Python and COM, this information is valuable. You may wish to skip this section and come back to it when the need arises.

A PythonCOM policy determines how Python objects are exposed to COM; the policy dictates which attributes are exposed to COM and the IDs these attributes get. The policy actually sits between COM and your object and is responsible for responding to the IDispatch interface’s GetIDsOfNames() and Invoke() functions. The policy dictates how these IDispatch calls are translated into the references to your Python object.

The default PythonCOM policy is suitable in most cases, and all the examples to date have used the default policy. The policy implemented is:

  • All methods named in the _public_methods_ attribute are exposed to COM. Any method not listed in _public_methods_ is considered private.

  • All properties named in the _public_attrs_ attribute are exposed to COM. If the property name also appears in the attribute _readonly_attrs_, it can be read, but not written; otherwise, users of this object can change the property.

  • Other special attributes can obtain advanced behavior. You can review the full list of attributes in Table 12.4.

What this means is that the PythonCOM framework itself doesn’t determine how an object is exposed via COM; it’s determined by the policy.

The PythonCOM package ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required