[Python] override di __getattribute__ per avere getter e setter "automatici"
Un saluto a tutti, mi chiamo Francesco e sono nuovo della lista :-) Ho cominciato ad usare il python un paio di mesi fa per lavoro e lo trovo un linguaggio estremamente interessante e potente, soprattutto sul versante dell'introspezione. Vorrei condividere con voi del codice che ho scritto per creare setter e getter "automatici". potete visionarlo al seguente url: http://rafb.net/p/bQDQAF11.html l'obiettivo e' quello di creare un "sostituto" di "object" per estendere le sue funzionalita' e dare la possibilita' di definire variabili d'istanza con l'override degli operatori "assegnazione" e "lettura". Per raggiungere questo scopo ho ridefinito i metodi __getattribute__ e __setattr__ l'obiettivo e' quello che un pezzo di codice come questo: obj.foobar = 42 chiami il metodo "set_foobar(42)" definito dentro "obj" come vi sembra come idea e come design? inoltre ho un problemino: non riesco ad accedere alla variabile "__foobar" all'interno del metodo __getattribute__ avete qualche idea? (il problema e' segnato con un FIXME all'interno del codice all'url http://rafb.net/p/bQDQAF11.html ) saluti, Francesco -- The generation of random numbers is too important to be left to chance - Robert R. Coveyou ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] override di __getattribute__ per avere getter e setter "automatici"
On Sun, Jun 29, 2008 at 7:07 PM, Daniele Varrazzo <[EMAIL PROTECTED]> wrote: >> Vorrei condividere con voi del codice che ho scritto per creare setter >> e getter "automatici". >> potete visionarlo al seguente url: >> http://rafb.net/p/bQDQAF11.html > http://www.python.org/download/releases/2.2.3/descrintro/#metaclass_examples Grazie mille per le risposte! ho utilizzato il trick della metaclasse documentato sul manuale e funziona alla grande! (per quanto riguarda PEAK, invece non ho ben capito di cosa si tratti, mi sembra un po' fumoso come progetto) il codice di ImprovedObject si e' ridotto a questo: class ImprovedObject(object): def __init__(self): self.__metaclass__ = autoprop l'assegnazione di __metaclass__ l'ho messa nell'__init__ della superclasse al fine di non doverla dichiarare nelle classi figlie. Le metaclassi sono molto interessanti, cosi' come tutto l'aspetto di introspezione del python e le magnifiche lambda. Ho come l'impressione che tutti questi elementi manderanno in pensione un sacco di design pattern descritti in letteratura. per Marco: e' vero, avrei potuto anche utilizzare direttamente property() ma nel caso di un gran numero di variabili d'istanza diventa troppo ripetitivo ogni volta dover specificare che il getter/setter di "foobar" e' get_foobar/set_foobar. A livello di quantita' di codice cerco le soluzioni piu' "riassuntive" possibili. grazie, e alla prossima! Francesco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Ram libera sotto Linux
2008/6/27 Manlio Perillo <[EMAIL PROTECTED]>: > /proc/meminfo. Puo' funzionare. Se pero' pensiamo che il python e' un linguaggio che va su varie piattaforme questo approccio mi sembra deleterio; mi ricorda le serie di #ifdef in C. La soluzione potrebbe essere creare una libreria che fornisca questi attributi e nasconda la dipendenza da uno specifico sistema operativo. Mi stupisco se non e' ancora stata realizzata. saluti, Francesco -- The generation of random numbers is too important to be left to chance - Robert R. Coveyou ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] creare un database
On Wed, Jul 16, 2008 at 9:33 PM, Ernesto <[EMAIL PROTECTED]> wrote: > sto provando a creare un database tipo dizionario con Python. Al > momento ho sfruttato il modulo anydbm. Ho, tuttavia, notato che quando > il numero di informazioni da conservare aumenta l'accesso al database > rallenta notevolmente. Anche lo spazio su disco è abbastanza elevato. > Mi chiedevo se esiste qualcosa di alternativo più efficiente. Ciao, hai provato soluzioni alternative con sqlite o mysql? Probabilmente hanno piu' ottimizzazioni del tool che hai provato. Scusami se la risposta e' troppo semplice :) Ciao, Francesco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Consiglio ambiente di sviluppo
2008/7/18 Edo Monticelli <[EMAIL PROTECTED]>: > Salve a tutti, > sono nuovo della lista e ho da poco iniziato a lavorare con python. > Ora sto lavorando con Eclipse+Pydev ma non son pienamente soddisfato. > Qualcuno ha valide alternative? Ciao Edo, ti consiglio di provare SPE ( http://pythonide.blogspot.com/ ). Ha anche la funzionalita' pydoc integrata. Purtroppo non l'ho ancora usato estensivamente, sono fermo sul gran bel trattore "vim" che funziona sempre e comunque :) saluti, Francesco Stablum -- The generation of random numbers is too important to be left to chance - Robert R. Coveyou ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Consiglio ambiente di sviluppo
2008/7/18 Giovanni Marco Dall'Olio <[EMAIL PROTECTED]>: > 2008/7/18 Francesco Stablum <[EMAIL PROTECTED]>: >> Purtroppo non l'ho ancora usato estensivamente, sono fermo sul gran >> bel trattore "vim" che funziona sempre e comunque :) > Accidenti pensavo che ci fossero meno persone ad usare ancora vim :). > Cmq anche per me va benissimo. > > L'unica accortezza é quella di abbinarlo a ipython > (http://ipython.scipy.org/moin/) piuttosto che all'interprete python > tradizionale, perché é molto più comodo. Purtroppo vim non ha un sacco di funzionalita' che farebbero comodo, come ad esempio syntax-checking e il completamento automatico, carenze che sono comuni anche nel suo supporto agli altri linguaggi. Ma forse mi sbaglio, magari c'e' qualcuno che conosce qualche plug-in adatto allo scopo... Per quanto riguarda ipython ti ringrazio per il consiglio, lo provero' senz'altro! saluti, Francesco Stablum -- The generation of random numbers is too important to be left to chance - Robert R. Coveyou ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] JSON Serialize a Python Class
Hi, indeed these objects are not serializable with the well known Python's JSON serializers. I would suggest you jsonpickle that allows the serialization that you need: http://jsonpickle.github.io/ good luck! -Francesco On 11 January 2014 18:46, Marco Olimpi wrote: > Hi, > i'm traing to serialize my called in python. This is my example: > I have this two classes: > > *class User():* > * def __init__(self, _name, _lastname):* > * self.Name = _name* > * self.LastName = _lastname* > > *class News():* > * def __init__(self, _news,_user):* > * self.News = _news* > * self.User = _user* > > > than i create my class in my code: > > ... > *myUser = User("Mario","Rossi")* > *myNews = News("My last news", myUser)* > > *JSONstring = dumps(myNews)* > ... > > but in the last line of code i get the error that the News class is not > JSON serializable. > > How I can make this work? > > Thanks. > > Regards > > Marco > > ___ > 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] web2Py hosting
Mi sto trovando bene con pythonanywhere.com , ha anche un editor web-based. Saluti, Francesco 2014/1/24 Infrid > Puoi provare webfaction, è un hosting shared dove puoi usare > qualsivoglia linguaggio di programmazione e sono molto ferrati in python. > > Ti danno login ssh e la tua bella directory /home/nome_utente in pieno > stile gnu/linux. > > Hai molta libertà; puoi scegliere la versione di Python che preferisci, > installare i pacchetti tramite pip e compilare pure del software in C da > eseguire sul tuo account (tutto nel limite dei termini di servizio). > > Lo uso da qualche anno per il mio sito personale e anche per tutti > quelli che gestiamo in ufficio (a parte lo store). > > Non è un servizio low cost (io pago 9$ al mese), ma sono soldi ben spesi > e se hai molti siti web è l'ideale. > > Unico limite a cui devi stare attento è la RAM occupata dal tuo account, > ti dedicano 512MB (aumentabili) solo per i tuoi processi. Ovviamente > essendo shared non viene conteggiata la RAM che serve al sistema > operativo o delle risorse necessarie ad eseguire un dbms come > mysql/postgresql. > > Altro limite sono i 100GB di hard disk che ti danno, da condividere con > lo spazio occupato nel database e dalla posta. Io ho sempre superato a > malapena qualche GB, anche perché devi seguire i termini di servizio > (niente backup da 50GB di file mp3). > > Come supporto tecnico non mi posso lamentare, hanno sempre fatto il loro > dovere e risposto anche a domande non proprio pertinenti con l'hosting. > > Non hanno uno SLA garantito e non garantiscono nemmeno le copie di > backup. Capita che quella settimana hanno problemi con i sistemi di > copia e salta il backup a tutto il server. > > Una volta si era guastata la ventolina della cpu che ha spento tutto, > ricordo ancora quel ticket di risposta, risolto in 2 ore o meno :D > > Il caso più grave di down era causato da un server che faceva i > capricci, abbiamo chiesto di migrare su una macchina migliore e senza > battere ciglio hanno creato un secondo account per il trasferimento (in > questi casi puoi chiedere che facciano tutto loro ma ho preferito fare > io il lavoro sporco). Poi quel server è stato soppresso e con qualche > ticket abbiamo ricevuto 3 mesi di hosting gratuito. > > Non è un servizio adatto a tutti, lo consiglio vivamente per chi fa lo > sviluppatore e per chi conosce bene la materia. > > Saluti > Infrid > ___ > 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] python SQL?
Ciao Matteo, ti consiglio di usare SQLite: http://www.sqlite.org/ http://docs.python.org/2/library/sqlite3.html Dal tuo post non si capisce perche' SQL sia essenziale. Nel caso non lo fosse ti consiglio questi DBMS: * MongoDB http://www.mongodb.org/ , * UnQLite promette bene: http://unqlite.org/ https://pypi.python.org/pypi/unqlitepy ciao, -Francesco 2014-02-15 15:20 GMT+01:00 Perini Matteo : > Ciao a tutti, > mi trovo ad affrontare la mia prima applicazione che fa uso di database. > Quale mi consigliate? > E' da un po' che seguo questa lista e mi sembra che quasi tutti siate > orientati verso PostgreSQL... sbaglio? > Ho anche dato un occhiata in giro per vedere che libreria usare e ne ho > viste di molti tipi. > Psycopg1, Psycopg2, bpgsq ? > > Accetto qualsiasi consiglio considerate anche che è il mio primo > approccio ai db ma che potrei averne bisogno anche in futuro. > Grazie > Ciao > M. > ___ > 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] FW: [Staff] start up python
Ciao Emanuele, Python e' un ottimo linguaggio di programmazione per iniziare... non ti servono altre basi. Di documentazione online ce n'e' a bizzeffe. Magari puoi cominciare con un tutorial interattivo: http://www.learnpython.org/ saluti, -Francesco 2014-03-04 11:24 GMT+01:00 Emanuele Barese : > > > > > > Ciao a tutti scusatemi se sarò diretto, ma vorrei imparare questo linguaggio di programmazione, per poter usare anche io python dovrei avere basi di altri linguaggi di programmazione ? Ho dato un'occhiata alla sezione http://www.python.it/doc/newbie/ vi volevo chiedere per poter iniziare ad usare python quale libro potrei usare prima ? ero propenso nell'acquistare http://www.amazon.it/Python-Marco-Beri/dp/8850329156/ref=sr_1_1?s=books&ie=UTF8&qid=1393889718&sr=1-1&keywords=pythonma l'ho visto molto piccolo per "start up" che libro o guida potrei usufruire ? > > Distinti saluti > > > ___ > 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