[Python] exporting di classi

2006-12-01 Per discussione Federico Tomassini

Ciao a tutti,

ho un dubbio sui python internal.
Ecco la situazione; ho due classi:

###
class Foo:
  def __init__(self):
   self.x= 0
  def inc(self):
   self.x+= 1

class Bar:
  def __init__(self):
   self.x= 0

foo=Foo()
bar=Bar()
###

Poi, eseguo cio' che chiamo un'exporting di classe:

###
attr= getattr(foo, 'inc')
setattr(bar, 'inc', attr)
###

In questo modo la classe `bar` avra' il metodo 'inc',
richiamabile tramite `self.inc`.

Se a questo punto qualcuno si chiedesse perche' non
eredito, la risposta e' la seguente: l'ereditarieta'
costringe, per ogni classe, a inizializzare un nuovo
padre; queso in genere non e' un problema, ma nel mio
caso voglio che le mie classi utilizzino tutte lo
*stesso padre*, e non un' istanza ciascuna.

A questo punto, ecco cosa succede:

###
 >>> bar.inc()
 >>> bar.x
0
 >>> foo.x
1
 >>>
###

In pratica, il metodo inc e' stato chiamato con
self=foo, non self=bar, nonostante la classe chiamante
sia a tutti gli effetti bar.

Mi chiedo:

1- Come viene inizializzato il self? Pensavo che
venisse valorizzato in relazione alla classe chiamante,
ma quanto sopra dimostra che non e' cois'

2- Come potrei ottenere l'effetto desiderato in maniera
elegante? l'obiettivo e' quello di ottenere bar.x=1 e
foo.x=0. Una soluzione e' quella di modificare il
metodo inc:
###
  def inc(self, c):
   c.x+= 1
###
e poi chiamare:
###
bar.inc(bar)
###
ma questo e' abbastanza trash.

Ogni idea e' ben accetta
Ciao

--
efphe




___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Moduli pre-stampati

2006-12-01 Per discussione Marco Mapelli
Ciao a tutti, devo sviluppare un programma per windows che faccia la
seguente cosa:

 

Data una immagine di un modulo, compilarlo a video e stamparlo.

 

Mi spiego, devo far compilare il modulo, es. F24 o altro, quindi formattato
in un certo modo e poi stamparlo.

Sapete se esiste qualche cosa di già fatto o sapete indirizzarmi su come
partire per farlo??

 

Grazie.

 

 

Marco Mapelli

  [EMAIL PROTECTED]

 

 

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] exporting di classi

2006-12-01 Per discussione Manlio Perillo

Federico Tomassini ha scritto:

Ciao a tutti,

ho un dubbio sui python internal.
Ecco la situazione; ho due classi:

###
class Foo:
  def __init__(self):
   self.x= 0
  def inc(self):
   self.x+= 1

class Bar:
  def __init__(self):
   self.x= 0

foo=Foo()
bar=Bar()
###

Poi, eseguo cio' che chiamo un'exporting di classe:

###
attr= getattr(foo, 'inc')
setattr(bar, 'inc', attr)
###

In questo modo la classe `bar` avra' il metodo 'inc',
richiamabile tramite `self.inc`.

Se a questo punto qualcuno si chiedesse perche' non
eredito, la risposta e' la seguente: l'ereditarieta'
costringe, per ogni classe, a inizializzare un nuovo
padre; queso in genere non e' un problema, ma nel mio
caso voglio che le mie classi utilizzino tutte lo
*stesso padre*, e non un' istanza ciascuna.



In Python la classe base non è inizializzata a meno che  non lo richieda 
tu esplicitamente.


Basta non chiamare l'__init__ della classe base.

Infine per fare in modo che lo stato della classe base sia unico cerca 
"pattern Borg".






Saluti  Manlio Perillo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Moduli pre-stampati

2006-12-01 Per discussione Manlio Perillo

Marco Mapelli ha scritto:
Ciao a tutti, devo sviluppare un programma per windows che faccia la 
seguente cosa:


 


Data una immagine di un modulo, compilarlo a video e stamparlo.

 

Mi spiego, devo far compilare il modulo, es. F24 o altro, quindi 
formattato in un certo modo e poi stamparlo.


Sapete se esiste qualche cosa di già fatto o sapete indirizzarmi su come 
partire per farlo??




Se hai solo una immagine la vedo dura...

L'unica soluzione che mi viene in mente è, con un semplice editor di 
immagini come gimp, calcolare le coordinate delle caselle di testo.


A questo punto nel tuo programma visualizzi l'immagine come sfondo e le 
tue input box in sovraimpressione, pronte a ricevere l'input dell'utente.


Una volta terminato tramite una libreria grafica come PIL inserisci il 
testo nell'immagine.




Saluti  Manlio Perillo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Moduli pre-stampati

2006-12-01 Per discussione Marco Mapelli
> Se hai solo una immagine la vedo dura...
In pratica posso avere quello che voglio, adesso fanno la fotocopia del
modulo e poi ci scrivono dentro.
Sarebbe + comodo avere quale formato ??
O costruire direttamente il modulo, come ??

 Grazie 


Marco Mapelli
[EMAIL PROTECTED]

 Marco Mapelli ha scritto:
> Ciao a tutti, devo sviluppare un programma per windows che faccia la 
> seguente cosa:
> 
>  
> 
> Data una immagine di un modulo, compilarlo a video e stamparlo.
> 
>  
> 
> Mi spiego, devo far compilare il modulo, es. F24 o altro, quindi 
> formattato in un certo modo e poi stamparlo.
> 
> Sapete se esiste qualche cosa di già fatto o sapete indirizzarmi su come 
> partire per farlo??
> 

Se hai solo una immagine la vedo dura...

L'unica soluzione che mi viene in mente è, con un semplice editor di 
immagini come gimp, calcolare le coordinate delle caselle di testo.

A questo punto nel tuo programma visualizzi l'immagine come sfondo e le 
tue input box in sovraimpressione, pronte a ricevere l'input dell'utente.

Una volta terminato tramite una libreria grafica come PIL inserisci il 
testo nell'immagine.



Saluti  Manlio Perillo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Moduli pre-stampati

2006-12-01 Per discussione Manlio Perillo

Marco Mapelli ha scritto:

Se hai solo una immagine la vedo dura...

In pratica posso avere quello che voglio, adesso fanno la fotocopia del
modulo e poi ci scrivono dentro.
Sarebbe + comodo avere quale formato ??


Un qualsiasi formato che possa essere editato e renderizzato in modo 
semplice.

Il modulo come è stato creato?



O costruire direttamente il modulo, come ??



Devi (ri)creare tutta la struttura grafica del modulo.
Prova a dare una occhiata a reportlab per generare documenti PDF.



Saluti  Manlio Perillo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] exporting di classi

2006-12-01 Per discussione efphe

Manlio Perillo wrote:

Federico Tomassini ha scritto:

Ciao a tutti,

ho un dubbio sui python internal.
Ecco la situazione; ho due classi:

###
class Foo:
  def __init__(self):
   self.x= 0
  def inc(self):
   self.x+= 1

class Bar:
  def __init__(self):
   self.x= 0

foo=Foo()
bar=Bar()
###

Poi, eseguo cio' che chiamo un'exporting di classe:

###
attr= getattr(foo, 'inc')
setattr(bar, 'inc', attr)
###

In questo modo la classe `bar` avra' il metodo 'inc',
richiamabile tramite `self.inc`.

Se a questo punto qualcuno si chiedesse perche' non
eredito, la risposta e' la seguente: l'ereditarieta'
costringe, per ogni classe, a inizializzare un nuovo
padre; queso in genere non e' un problema, ma nel mio
caso voglio che le mie classi utilizzino tutte lo
*stesso padre*, e non un' istanza ciascuna.



In Python la classe base non è inizializzata a meno che  non lo richieda 
tu esplicitamente.


Mi sembrava che la frase:

"""
ma nel mio caso voglio che le mie classi utilizzino 
tutte lo *stesso padre*

"""

fosse chiara.

Il problema non sta nell'inizializzazione, e non si 
aggira non inizializzando nulla.


Mi spiego in altre parole: ho bisogno di *un*'istanza 
Foo che venga utilizzata da *ogni* istanza Bar, in modo 
che l'istanza Foo sia condivisa, persistente e shared 
per ogni classe Bar.


Al tempo stesso, mi chiedo se sia possibile (di certo 
lo e', basta fare abbastanza hack) e come possa essere 
implementato un meccanismo di "esportazione di tipo 
ereditaria": il metodo inc, in altre parole, dovrebbe 
inizializzare il primo argomento (self) a Bar.bar e non 
a Foo.foo.


Ma attenzione, se ho due istanza Bar, B e C, devo avere:

memory_address(B.inc)= memory_address(C.inc)

--
efphe









___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] exporting di classi

2006-12-01 Per discussione Manlio Perillo

efphe ha scritto:

[...]


In Python la classe base non è inizializzata a meno che  non lo 
richieda tu esplicitamente.


Mi sembrava che la frase:

"""
ma nel mio caso voglio che le mie classi utilizzino tutte lo *stesso padre*
"""

fosse chiara.

Il problema non sta nell'inizializzazione, e non si aggira non 
inizializzando nulla.


Mi spiego in altre parole: ho bisogno di *un*'istanza Foo che venga 
utilizzata da *ogni* istanza Bar, in modo che l'istanza Foo sia 
condivisa, persistente e shared per ogni classe Bar.




A parte la persistenza (ma che cosa intendi), usare il pattern Borg per 
la classe base mi sembra la soluzione più semplice.


Al tempo stesso, mi chiedo se sia possibile (di certo lo e', basta fare 
abbastanza hack) e come possa essere implementato un meccanismo di 
"esportazione di tipo ereditaria": il metodo inc, in altre parole, 
dovrebbe inizializzare il primo argomento (self) a Bar.bar e non a Foo.foo.


Ma attenzione, se ho due istanza Bar, B e C, devo avere:

memory_address(B.inc)= memory_address(C.inc)



Se è proprio questo quello che vuoi, puoi fare:

import types

bar.inc = types.MethodType(foo.inc.im_func, bar)




Leggi http://docs.python.org/ref/types.html per maggiori info.




Saluti  Manlio Perillo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] exporting di classi

2006-12-01 Per discussione efphe

Manlio Perillo wrote:

Al tempo stesso, mi chiedo se sia possibile (di certo lo e', basta fare 
abbastanza hack) e come possa essere implementato un meccanismo di 
"esportazione di tipo ereditaria": il metodo inc, in altre parole, 
dovrebbe inizializzare il primo argomento (self) a Bar.bar e non a Foo.foo.


Ma attenzione, se ho due istanza Bar, B e C, devo avere:

memory_address(B.inc)= memory_address(C.inc)



Se è proprio questo quello che vuoi, puoi fare:

import types

bar.inc = types.MethodType(foo.inc.im_func, bar)


Yep, grazie, proprio quello che intendevo  ;)

--
efphe





___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] bottone con immagine

2006-12-01 Per discussione FABRI
ciao


ho creato dei bottoni in questo modo.


self.s[i]=Button(self, width=self.w, bg=self.bg, fg=self.col,
  font=self.font, image=immagine)
self.s[i].grid(row=20, column=i*(a+1), columnspan=a,
  sticky=W+E+S, pady=50)


#In precedenza avevo definito:


immagine = Tkinter.PhotoImage(file='image1.gif')


perchè non funziona???


potreste aiutarmi??  grazie mille.


fabri





--
Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom
http://click.libero.it/infostrada01dic06


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] (senza oggetto)

2006-12-01 Per discussione mar joe

salve, qualcuno sa come si aggiorna un dizionario

mi servirebbe un metodo tipo append per le liste in cui passo chiave e 
valore


for i in range(len())
   mylista.append(value[i])


ecco, si qualcosa del genere

fo i in range(len(...))
mydict

_
Aguzza la vista e trova le 5 differenze !   www.msn.it/3x33

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Python su Debian: gestione path

2006-12-01 Per discussione Manlio Perillo
Ho notato che su Debian quando si esegue uno script la directory 
corrente non viene messa nel sys.path.


Come mai?


Saluti e grazie  Manlio Perillo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] (senza oggetto)

2006-12-01 Per discussione Marco Giusti
On Fri, Dec 01, 2006 at 09:55:34PM +0100, mar joe wrote:
>salve, qualcuno sa come si aggiorna un dizionario

???

di = dict()
valore = 'val'
di['chiave'] = valore
print di

intendi cosi'?

-- 
reply to `python -c "print '[EMAIL PROTECTED]'[::-1]"`


signature.asc
Description: Digital signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python su Debian: gestione path

2006-12-01 Per discussione Marco Giusti
On Fri, Dec 01, 2006 at 10:01:58PM +0100, Manlio Perillo wrote:
>Ho notato che su Debian quando si esegue uno script la directory 
>corrente non viene messa nel sys.path.
>
>Come mai?

sei sicuro?

#!/usr/bin/env python

import sys
print sys.path


['/home/nohero/tmp',
'/opt/python/lib/python2.5/site-packages/setuptools-0.6c3-py2.5.egg',
'/opt/python/lib/python2.5/site-packages/SQLObject-0.8dev_r2059-py2.5.egg',
'/opt/python/lib/python2.5/site-packages/formal-0.9.9-py2.5.egg',
'/opt/python/lib/python2.5/site-packages/FormEncode-0.6-py2.5.egg',
'/opt/python/lib/python25.zip', '/opt/python/lib/python2.5',
'/opt/python/lib/python2.5/plat-linux2',
'/opt/python/lib/python2.5/lib-tk',
'/opt/python/lib/python2.5/lib-dynload',
'/opt/python/lib/python2.5/site-packages',
'/opt/python/lib/python2.5/site-packages/gtk-2.0']

ciao
marco

-- 
reply to `python -c "print '[EMAIL PROTECTED]'[::-1]"`


signature.asc
Description: Digital signature
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python su Debian: gestione path

2006-12-01 Per discussione Manlio Perillo

Marco Giusti ha scritto:

On Fri, Dec 01, 2006 at 10:01:58PM +0100, Manlio Perillo wrote:
Ho notato che su Debian quando si esegue uno script la directory 
corrente non viene messa nel sys.path.


Come mai?


sei sicuro?



Direi di si, ho dovuto inserire in path corrente in sitecustomize.
Uso python2.4 su Etch.




Saluti  Manlio Perillo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python su Debian: gestione path

2006-12-01 Per discussione Sandro Dentella
> >>Ho notato che su Debian quando si esegue uno script la directory 
> >>corrente non viene messa nel sys.path.
> >>
> >>Come mai?
> >
> >sei sicuro?
> >
> 
> Direi di si, ho dovuto inserire in path corrente in sitecustomize.
> Uso python2.4 su Etch.

Anche io uso python2.4 su Etch, ma come per Marco il mio path è impostato
con la cartella corrente come primo elemento.

sandro
*:-)


-- 
Sandro Dentella  *:-)
http://www.tksql.orgTkSQL Home page - My GPL work
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python su Debian: gestione path

2006-12-01 Per discussione Eriol
Alle 22:47, venerdì 1 dicembre 2006, Sandro Dentella ha scritto:
> Anche io uso python2.4 su Etch, ma come per Marco il mio path è
> impostato con la cartella corrente come primo elemento.

Idem per me...

-- 
 Eriol - *p = NULL; - EIBTI 
 GPG Key ID 297BE0CA
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] bottone con immagine

2006-12-01 Per discussione Lawrence Oluyede

Qui - http://effbot.org/tkinterbook/photoimage.htm - dice che dopo
aver creato l'immagine in questo modo:

photo = PhotoImage(file="image.gif")

devi inserirla nel widget in questo modo:

label = Label(image=photo)
label.image = image # keep a reference!
label.pack()

Inoltre c'è da dire che il "non funziona" è un messaggio di errore un
po' troppo generico :D

--
Lawrence
http://www.oluyede.org/blog
http://www.neropercaso.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python