--- Em zope-pt@yahoogrupos.com.br, Rodrigo Dias Arruda Senra
<[EMAIL PROTECTED]> escreveu
>
> [ "oradoriun" <[EMAIL PROTECTED]> ]:
> ----------------------------------------
> |  
> |  Mas experimentei a sua sugestão
> |  e pedi apenas um  "return objeto",
> |  ao invés de fazer a chamada do método objeto.consulta,
> |  não sei como mas ele o executou, acho estranho
> |  acontecer isso sem fazer qualquer chamada.
> |  O que acorreu foi o seguinte:
> |  Retornou isso no browser...
> |  
> |  Nome: <bound method Instituicao.get_Nome of <Instituicao at
> |  inst0025>>          UnidadeEscolar: <bound method
> |  Instituicao.get_UnidadeEscolar of <Instituicao at inst0025>>       
> |  ModalidadeEnsino: <bound method Instituicao.get_ModalidadeEnsino of
> |  <Instituicao at inst0025>>          Classificacao: <bound method
> |  Instituicao.get_Classificacao of <Instituicao at inst0025>>        
Diretor:
> |  <bound method Instituicao.get_Diretor of <Instituicao at inst0025>>        
> |  Cnpj: <bound method Instituicao.get_Cnpj of <Instituicao at
inst0025>> 
> |  
> |  Isso tudo em uma linha só.
> 
> Experimente colocar um () após cada um dos métods abaixo, assim:
> 
> ref = type(self)
> arg_id = ref.get_id()
> arg_nome = ref.get_Nome()
> # etc
> 
> Até onde eu entendi do seu problema (e não foi muito hehehe)
> é preciso distinguir o seguinte em Python:
> 
> <code>
> >>> class SomeKlazz(object):
> ...     def someMethod(self):
> ...         pass
> ...
> >>> obj = SomeKlazz()
> >>> obj.someMethod
> <bound method SomeKlazz.someMethod of <__main__.SomeKlazz object at
0xb7e0ae2c>>>>> obj.someMethod()
> >>>
> </code>
> 
> O exemplo acima ilustra que métodos (e funções) são "valores de
primeira classe"
> (NdT: first class values), ou seja, podem ser passados como parâmetros,
> armazenados em estruturas de dados e invocados.
> Quando vc pede para o interpertador Python transformar em string
(sem invocar)
> um método vinculado a uma classe ele retorna a string que descreve o
objeto.
> Algum lugar nas entranhas do seu código Zope foi recebido um objeto
do tipo
> (bound method == método vinculado a alguma instância) e foi aplicado
a ele
> a função str() e o resultado foi o que vc descreveu.
> Em suma, talvez só esteje faltando invocar o método em algum lugar
através
> da adição de () após o nome do método.
> 
> Espero que isso ajude (ao invés de confundir mais).  
> 
> 
> Abração,
> Senra
> 
> -------------
> Rodrigo Senra
> GPr Sistemas
>

Caríssimos Companheiros!
Rodrigo Senra
e Dorneles Treméa

O problema foi exatamente o que apontaram...
Se certo foi que tive que corrigir umas pouquíssimas
coisas no método "consulta" mas coisa de str()'s.

Agradeço muito a pois já fazia tempo até demais que 
havia parado neste "problema elementar"!

Banzai!!!
Banzai!!!
Banzai!!!
(Que Viva 1000 anos...)

Responder a