RE: [Zope] Examining Properties of Returned Object
Thanks Troy. I wasn't clear in my earlier email... I know how to get at the attribute/method of an object if I know what it's name is. By using someobj.attributename or someobj.methodname() (or using 'getattr(....)'). But how do I enumerate all attributes & methods associated with an object when I don't know the structure of the object (i.e., as if I was exploring the object in a debugger)? I've been using Dieter Maurer's DocFinderEverywhere extensively to get info on generic objects returned by Zope (thanks Dieter, very helpful product, especially for beginners), but obviously it has it's limitations. Thanks again. SM. -----Original Message----- From: Troy Farrell [mailto:troy@entheossoft.com] Sent: Tuesday, May 20, 2003 08:40 To: Samir Mishra Cc: 'zope@zope.org' Subject: Re: [Zope] Examining Properties of Returned Object What is calling your python script? Is it TAL(ES), DTML, another python script, a zope product or an external method? Unfortunately, each of these has some slightly different methods... Did you try obj.myattribute or getattr(obj, myattribute) or (in TAL) obj/myattribute Thanks. Troy Samir Mishra wrote:
Hello all,
I'm sure there's a way, just can't figure it out...
I have a python script returning an object. The result set I'm actually interested in is wrapped somewhere within this object.
My question: how can I examine the properties/methods of an object returned by Python?
Thanks in advance.
Regards, Samir
Hi In O'Reilly Python Cookbook is an article "Getting all members of a class hierarchy". Here is the code: def all_members(aClass): try: #try getting all relevant classes in method-resolution order mro = list(aClass.__mro__) except AttributeError: #if a class has no __mro__, then it's a classic class def getmro(aClass, recurse): mro = [aClass] for base in aClass.__bases__: mro.extend(recurse(base, recurse)) return mro mro = getmro(aClass, getmro) mro.reverse() memebers = {} for someClass in mro: members.update(vars(someClass)) return members "The all_members function creates a dictionary that includes seach member(such as methods and data attributes) of a class with the name as the key and the class attribute value as the corresponding value." If you have the book take a look 'cause there is more stuff. i hope this will help dragos ----- Original Message ----- From: "Samir Mishra" <SamirMishra@cbuae.gov.ae> Cc: <zope@zope.org> Sent: Tuesday, May 20, 2003 10:17 AM Subject: RE: [Zope] Examining Properties of Returned Object
Thanks Troy. I wasn't clear in my earlier email...
I know how to get at the attribute/method of an object if I know what it's name is. By using someobj.attributename or someobj.methodname() (or using 'getattr(....)'). But how do I enumerate all attributes & methods associated with an object when I don't know the structure of the object (i.e., as if I was exploring the object in a debugger)?
I've been using Dieter Maurer's DocFinderEverywhere extensively to get info on generic objects returned by Zope (thanks Dieter, very helpful product, especially for beginners), but obviously it has it's limitations.
Thanks again. SM.
-----Original Message----- From: Troy Farrell [mailto:troy@entheossoft.com] Sent: Tuesday, May 20, 2003 08:40 To: Samir Mishra Cc: 'zope@zope.org' Subject: Re: [Zope] Examining Properties of Returned Object
What is calling your python script? Is it TAL(ES), DTML, another python script, a zope product or an external method? Unfortunately, each of these has some slightly different methods... Did you try
obj.myattribute
or
getattr(obj, myattribute)
or (in TAL)
obj/myattribute
Thanks. Troy
Samir Mishra wrote:
Hello all,
I'm sure there's a way, just can't figure it out...
I have a python script returning an object. The result set I'm actually interested in is wrapped somewhere within this object.
My question: how can I examine the properties/methods of an object returned by Python?
Thanks in advance.
Regards, Samir
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Samir Mishra wrote at 2003-5-20 11:17 +0400:
.... But how do I enumerate all attributes & methods associated with an object when I don't know the structure of the object (i.e., as if I was exploring the object in a debugger)?
Look at Python's "inspect" module. It provides methods to inspect classes, instances, ...
.... I've been using Dieter Maurer's DocFinderEverywhere extensively to get info on generic objects returned by Zope (thanks Dieter, very helpful product, especially for beginners), but obviously it has it's limitations.
Only "DocFinder" is from me, the "*EveryWhere" is from Stefan.
Thanks again. SM.
-----Original Message----- From: Troy Farrell [mailto:troy@entheossoft.com] Sent: Tuesday, May 20, 2003 08:40 To: Samir Mishra Cc: 'zope@zope.org' Subject: Re: [Zope] Examining Properties of Returned Object
What is calling your python script? Is it TAL(ES), DTML, another python script, a zope product or an external method? Unfortunately, each of these has some slightly different methods... Did you try
obj.myattribute
or
getattr(obj, myattribute)
or (in TAL)
obj/myattribute
Thanks. Troy
Samir Mishra wrote:
Hello all,
I'm sure there's a way, just can't figure it out...
I have a python script returning an object. The result set I'm actually interested in is wrapped somewhere within this object.
My question: how can I examine the properties/methods of an object returned by Python?
Thanks in advance.
Regards, Samir
Dieter
It sounds to me like you need the power of dir(). dir() is a builtin python function that is not accessible in zope (for security reasons I assume.) The best way to get around this is to create an external method that calls dir() with a given parameter. Troy Samir Mishra wrote:
Thanks Troy. I wasn't clear in my earlier email...
I know how to get at the attribute/method of an object if I know what it's name is. By using someobj.attributename or someobj.methodname() (or using 'getattr(....)'). But how do I enumerate all attributes & methods associated with an object when I don't know the structure of the object (i.e., as if I was exploring the object in a debugger)?
I've been using Dieter Maurer's DocFinderEverywhere extensively to get info on generic objects returned by Zope (thanks Dieter, very helpful product, especially for beginners), but obviously it has it's limitations.
Thanks again. SM.
-----Original Message----- From: Troy Farrell [mailto:troy@entheossoft.com] Sent: Tuesday, May 20, 2003 08:40 To: Samir Mishra Cc: 'zope@zope.org' Subject: Re: [Zope] Examining Properties of Returned Object
What is calling your python script? Is it TAL(ES), DTML, another python script, a zope product or an external method? Unfortunately, each of these has some slightly different methods... Did you try
obj.myattribute
or
getattr(obj, myattribute)
or (in TAL)
obj/myattribute
Thanks. Troy
Samir Mishra wrote:
Hello all,
I'm sure there's a way, just can't figure it out...
I have a python script returning an object. The result set I'm actually interested in is wrapped somewhere within this object.
My question: how can I examine the properties/methods of an object
returned
by Python?
Thanks in advance.
Regards, Samir
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
participants (4)
-
Dieter Maurer -
Dragos Chirila -
Samir Mishra -
Troy Farrell