Python COM object: attribute value typing
Steve Holden
sholden at holdenweb.com
Wed Jan 23 20:10:49 EST 2002
"Mark Hammond" <mhammond at skippinet.com.au> wrote ...
> Steve Holden wrote:
> > Quite an odd one, this. I'm creating a COM object in Python and
accessing it
> > from VBscript. I set a value true/false with the following statement in
the
> > COM object:
> >
> > self.AVS_aok = (r in "23")
> >
> > AVS_aok is to be found in both _public_attrs_ and _readonly_attrs_, if
it
> > matters. When I access this attribute from VBscript it comes back with
> > TypeName "Boolean", and values True/False, where I would have expected a
> > simple 1 or 0.
> >
> > I would not have though that Python retained anything other than the 0
or 1
> > result. How can this be?
>
> Python has internal PyTrue and PyFalse objects. boolean expressions
> will return one of these objects, rather than the simple 1 and 0
> objects. Even though they are both integers, PythonCOM can still make
> the distinction.
>
> ie:
> >>> true=(1==1)
> >>> true==1
> 1
> >>> true is 1
> 0
> >>>
>
> PythonCOM explicitly creates a VT_BOOL variant when it sees either
> PyTrue or PyFalse.
Thanks. I should have guessed (or used the source, Luke).
regards
Steve
--
Consulting, training, speaking: http://www.holdenweb.com/
Python Web Programming: http://pydish.holdenweb.com/pwp/
More information about the Python-list
mailing list