Return class instance from COM method in Python
Paul
paul.kemp at standardbank.com
Tue Oct 21 08:14:16 EDT 2003
More information about the Python-list mailing list
Tue Oct 21 08:14:16 EDT 2003
- Previous message (by thread): SSL security authorization?
- Next message (by thread): Return class instance from COM method in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I managed to solve my own problem - it didn't like having two __init__ methods (different prototypes). However, I have another problem. I've worked out how to return a list, and also how to return an instance of a class. I know need to be able to return a list of objects. Is this possible (no luck so far)? Paul paul.kemp at standardbank.com (Paul) wrote in message news:<bb8e48c9.0310200804.78350aef at posting.google.com>... > Hi > > I'm implementing a few COM classes using Python. I've come across a > problem when I'm trying the return an instance of a class from a > method on one of my classes. The code is as follows, with two classes > - clsDividend and clsDividendEsimate. The > clsDividend.GetDividendEstimates method tries to return a new instance > of the clsDividendEstimate class, but throws an error. > > Any ideas what I'm doing wrong - is it possible to do what I'm trying > to achieve? > > The client will ultimately be Excel, but I can't even get it to work > within a Python client yet. Ultimately I'd like to do this in my > client(pseudo): > > oDiv = CreateObject("SBLFront.clsDividend") > oDivEst = oDiv.GetDividendEstimates("testval") > msgbox oDivEst.ccy > > Many thanks > Paul > > # Expose the Python SBLFront. > class clsDividend(clsSBLFront): > """The SBLFront object exposed via COM > """ > #_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER > _public_methods_ = ['GetDividendEstimates'] > _public_methods_.extend(clsSBLFront._public_methods_) > > # All registration stuff to support fully automatic > register/unregister > _reg_verprogid_ = "SBLFront.clsDividend.1" > _reg_progid_ = "SBLFront.clsDividend" > _reg_desc_ = "Python SBLFront" > _reg_clsid_ = "{2E851A1B-A8D1-4AD5-BA16-EB6B9BCF2F21}" > _reg_class_spec_ = "win32com.servers.sblfront.clsDividend" > > # ------------------------------------------------------------------------ > > def __init__(self): > clsSBLFront.__init__(self) > self.dict = {} > > def GetDividendEstimates(self, InsId): > oDivEst = clsDividendEstimate('USD', 1.0, 1.0, > '2003-01-01','2003-01-01','2003-01-01','Test description') > return oDivEst > > # ---------------------------------------------------------------------------- > > class clsDividendEstimate: > """The SBLFront object exposed via COM > """ > _public_methods_ = [] > _public_attrs_ = ['ccy', 'dividend', 'tax_factor', 'pay_day', > 'ex_div_day', 'day', 'description'] > _readonly_attrs_ = ['ccy', 'dividend', 'tax_factor', 'pay_day', > 'ex_div_day', 'day', 'description'] > > # All registration stuff to support fully automatic > register/unregister > _reg_verprogid_ = "SBLFront.clsDividendEstimate.1" > _reg_progid_ = "SBLFront.clsDividendEstimate" > _reg_desc_ = "Python SBLFront" > _reg_clsid_ = "{055DEFBC-B095-4C5B-A9CE-BFBB965BBDC1}" > _reg_class_spec_ = "win32com.servers.sblfront.clsDividendEstimate" > > # ------------------------------------------------------------------------ > > def __init__(self): > self.dict = {} > self.ccy = '' > self.dividend = 0.0 > self.tax_factor = 0.0 > self.pay_day = '' > self.ex_div_day = '' > self.day = '' > self.description = '' > > def __init__(self, sCCY, dDiv, dTax, dtDay, dtPayDay, dtExDivDay, > sDesc): > self.dict = {} > self.ccy = sCCY > self.dividend = dDiv > self.tax_factor = dTax > self.pay_day = dtPayDay > self.ex_div_day = dtExDivDay > self.day = dtDay > self.description = sDesc
- Previous message (by thread): SSL security authorization?
- Next message (by thread): Return class instance from COM method in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list