|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#141 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
d'altra parte da uno giuentino e un interista non è che ci possa aspettare di meglio... ![]() E alla faccia vostra mi sono iscritto alla PyCon2 Dai chi mi fa compagnia?
|
|
|
|
|
|
|
#142 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Le struct non esistono (in realtà esistono, ma servono ad altro
Concettualmente è simile a quanto faresti con C++, C#, Java, ecc. Comunque coi dizionari finora non ho mai avuto la necessità di crearmi una "struct", per cui la strada che hai intrapreso con quel pezzo di codice molto probabilmente è quella giusta. Se ci dici esattamente a cosa ti serviva, ti possiamo dare una mano per risolvere il tuo problema. ![]() x DioBrando: diavolo tentatore! Mi sa che finirò per cadere nella trappola.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#143 | ||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Come per tutte le cose, sapendo quello che si sta facendo non e' complicatissimo. Il problema e' che fino a un paio di anni fa nessuno al mondo sapeva, di preciso, come scrivere un generatore di shader perche' era un problema nuovo
Dopo due anni di esperienza a lavorarci sopra posso tagliare qualche angolo, semplificare qui e la', fare qualche assunzione e, usando un linguaggio degno di questo nome, probabilmente si riesce a riscrivere quell'accozzaglia in maniera molto piu' semplice. Quote:
Codice:
def newStruct( name, *fields ):
import new
import compiler
header = 'def constructor( self, %s ):\n ' % ','.join( fields )
body = '\n '.join([ "self.%s = %s" % (x,x) for x in fields ])
source = header + body
exec source
return new.classobj(name, () , {'__init__' : constructor} )
Quote:
Comunque non ho scritto io quel codice. Io non scrivo in Python, ci ho solo dovuto mettere le mani... e non lo faccio piu'.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 26-03-2008 alle 10:41. |
||
|
|
|
|
|
#144 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#145 | ||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Per creare strutture "as usual": Codice:
class Punto:
def __init__(self, x, y):
self.x = x
self.y = y
p = Punto(0, 0)
print p.x, p.y
p.x = 1
p.y = 2
print p.x, p.y
Quote:
Codice:
/Use the indexer of the Hashtable class to retrieve your objects. The indexer takes
//Key as a parameter and accesses it with the Hashed location.
try
{
MessageBox.Show(MyTable[Person1.Lname].ToString());
MessageBox.Show(MyTable[Person2.Lname].ToString());
MessageBox.Show(MyTable[Person3.Lname].ToString());
}
catch (NullReferenceException ex)
{
MessageBox.Show("Key not in Hashtable");
MessageBox.Show(ex.Message);
Quote:
Già, perché si usano per leggere (e scrivere) strutture di dati da file. Python non ha bisogno del classico concetto di struct che si trova in C o in altri linguaggi: ci sono le classi oppure i dizionari per questo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys Ultima modifica di cdimauro : 26-03-2008 alle 10:55. |
||||
|
|
|
|
|
#146 | |||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Quote:
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|||
|
|
|
|
|
#147 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quindi il problema è la mancanza di costrutto struct-like del C? Voglio dire: in un linguaggio come il C# la soluzione al tuo problema sarebbe stata quella di usare una "struct"?
Rimane, comunque, il fatto che l'autore del codice non mi sembra particolarmente ferrato con Python e il testing in generale.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#148 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#149 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Mi sembra normale parlare di "ferratezza": un dizionario/hashtable è un oggetto che ha dei PRECISI requisiti d'utilizzo.
Se cerchi di accedere a un elemento inesistente Python solleva un'eccezione. Se utilizzi un dizionario senza conoscere questo "dettaglio" non di poco conto oppure con leggerezza, commetti un errore, come quello che hai mostrato e che t'ha fatto perdere. Ma è una cosa che capita con altri linguaggi appunto. Tra l'altro i dizionari permettono di evitare il sollevamento dell'eccezione restituendo un valore di default. In entrambi i casi, quindi, bisogna conoscere lo strumento. Ecco perché dico che bisogna essere ferrati. Detto ciò, mi sembra di capire che per risolvere il tuo problema sarebbe bastato una struct. Ne prendo atto, ma in Python lo si può fare: - in maniera MOLTO simile (vedi l'esempio che t'ho fornito prima); - coi dizionari, usandoli in maniera appropriata. Questo senza considerare che una buona unittest avrebbe permesso di risalire al bug prima ancora di lanciare l'esecuzione dello script.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#150 | |||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Io qui non sto imparando un linguaggio, io qui sto finendo un gioco, e con una previsione di 1000/2000 bug da fissare da qui ai prossimi quattro mesi, francamente, con dettagli delle hash table di Python mi ci sciacquo Se per ogni fix dovessi andarmi a studiare le sottigliezze del linguaggio per evitare di cadere nelle sue trappole, il gioco esce nel 2050. Mi ha fatto perdere tempo che non avrei perso con un linguaggio migliore, e' l'unica cosa che mi interessa. Quote:
Quote:
Non mi interessa quello che poteva essere, mi interessa quello che e' accaduto: due giorni persi perche' lo strumento che hanno scelto e' inadeguato grrrr.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|||
|
|
|
|
|
#151 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Lo strumento giusto era questo:
Codice:
class Punto:
def __init__(self, x, y):
self.x = x
self.y = y
p = Punto(0, 0)
print p.x, p.y
p.x = 1
p.y = 2
print p.x, p.y
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#152 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Bene. Ora manda una mail al tipo di Python e digli che se sbaglio cosi' platealmente ad usare lo strumento giusto mi dovrebbe avvertire presto. Non due settimane dopo il deploy di quel codice Anzi no, uso un linguaggio serio appena mi sono smazzato sti 2000 bug...
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#153 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Fran, ma il codice l'hai scritto tu o qualche tuo collega? Nel primo caso sei giustificato: odi Python, e non hai mai mostrato interesse a impararlo.
Comunque il creatore di Python lavora per la "concorrenza" ( www.google.com ). ![]() P.S. Se non ti piacciono i pitoni, puoi provare coi cobra.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#154 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Ricapitolo la storia: - Qualcuno ha avuto l'imponente idea di usare Python per scrivere il nostro sistema di build degli asset - Io ho avuto la sfortuna di dover aggiungere un flag per una risorsa - Due righe di codice che ho dovuto aggiungere si sono trasformate nell'inferno che ti ho descritto Tutto il lavoro avrebbe dovuto prender trenta o quaranta secondi al massimo, due settimane dopo sono ancora qui che debuggo... Anzi no, se lo sta debuggando quello che ha scelto Python ora... Ah l'ironia della sorte
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#155 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E che dice...per curiosità ? Sta cominciando a pensare di aver sbagliato scelta ?
|
|
|
|
|
|
#156 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
)...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#157 | |
|
Senior Member
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
|
Quote:
![]() cmq se uno "sperimenta" l'utilizzo del linguaggio per scrivere tutto il sistema di build di un progetto così imponente senza aver almeno testato prima se è quello che fa per lui o meno, non fa una mossa esattamente geniale. A prescindere dallo strumento scelto. |
|
|
|
|
|
|
#158 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#159 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#160 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 1278
|
si infatti fornisco l'input
http://www.st.cs.uni-sb.de/edu/semin...ocs/sweeny.pdf cosa ne pensi dell'opinione di un tuo "collega" In generale nel futuro utilizzeremo i linguaggi fuzionali
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:35.















non fa una grinza 








