> De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la part de 
> Tudor Gabriel
> Envoyé : mercredi 13 juin 2007 01:54
> À : zope@zope.org
> Objet : [Zope] basic python class & zope question
> 
> hi im new here , first post ... and new to zope.
> 
> i've read the manual ... and zope framework looks very promising ... 
> i started writing a couple of templates ... and run into some basic 
> problems like:
> 
> Problem 1.
> is it posible to have a python class ... defined in a script .... like
> class learn:
>    def print_something(self):
>       print 'it works'
> 
> 
> and call it from zpt ... like <span 
> tal:replace="learn/print_something">replace</span>? 
> 
> or how can i call a method from this object ? ... i tryied with 
> python:learn.print_something() and many different ways and i still 
> don't get it.
> 
> i'm starting to suspect that i can use classes only as zope products .... 
> and call from zpt ... only scripts without classes.
> 
> also do i have to set the properties/attributes of the script which 
> contains the class ... with the methods?
> 
> because by calling learn/print_somthing i get an AttributeError ... url 
> might be invalid etc... 
> 
> Problem 2.
> 
> how can i call/return from an python script a html file which resides in 
> some folder above the script.
> 
> i wanna call abc/index.html ... from abc/def/script.py
> 
> i tryied with the container[' index.html'[ but it doesn't return anything.
> 
> thank you for the patience and sorry for the very basic questions ... but 
> i feel that if i understand this things ... i can really get started with
> zope.
>

Hi,

> or how can i call a method from this object ?
To call a method of a class, you first have to possess an instance of that 
class in a variable. Then, supporing the variable is lrn_instance, you can use 
lrn_instance/print_something or python:lrn_instance.print_something() to call 
it.

> is it posible to have a python class ... defined in a script
....
> because by calling learn/print_somthing i get an AttributeError
It should be possible to define a class in a script, but the script won't 
become that class, you will have to have that script return an instance of the 
class, and then you store it somewhere (a variable maybe, or a property of some 
other object if you want it to persist). As far as I can tell, it would 
probably be wiser to define the class in a Product, though.

> how can i call/return from an python script a html file which resides...
This behaviour is built into Zope and is called acquisition: anything defined 
above your context is accessible as if it were in your context, as long as it 
isn't obscured by something else with the same name.

The things you want to access will lose their extension, by the way: 
index_html.pt will become index_html, the same way that script.py becomes script

>From abc/def/script.py, "context.index_html()" should give you the rendering 
>of abc/index_html.whatever_it_is


Hope this helps,
Jonathan

This message contains information that may be privileged or confidential and is 
the property of the Capgemini Group. It is intended only for the person to whom 
it is addressed. If you are not the intended recipient,  you are not authorized 
to read, print, retain, copy, disseminate,  distribute, or use this message or 
any part thereof. If you receive this  message in error, please notify the 
sender immediately and delete all  copies of this message.

_______________________________________________
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 )

Reply via email to