PDA

View Full Version : [Phyton]Argomento funzione


Squit
02-04-2010, 11:18
Salve a tutti, sono nuovo del forum e comincio subito a rompere le scatole! :P
Spiego brevemente quello che sto facendo... devo realizzare dei moduli personalizzati per il programma Jack (human modeling). Le gui devono essere fatte in tcl\tk ed il programma accetta istruzioni in python.
Bene, io non ho molta dimestichezza con il python, ma me la sto cavicchiando... la cosa su cui vado a sbattere la testa è questa:

def ScaleHuman(self,hum,h,w):
fig=scene.Find(hum)
fig.Scale(h*u.cm,w*u.kg)

Questa funzione riceve un argomento "hum" che è una stringa (nome del puppet). Con la funzione Find() cerco un oggetto che ha come nome "hum" per poi scalarlo... bene, queste istruzioni funzionano sulla shell di Jack, ma se le racchiudo in un file di script ricevo questo errore:

NameError: name 'Pippo' is not defined

Ovviamente Pippo è la stringa passata in hum.

Qualcuno potrebbe dirmi dove sbaglio? :P

Grazie mille! :)

cdimauro
02-04-2010, 13:13
E' troppo poco il codice che hai postato per poter riprodurre l'errore e/o cercare di capire dove potrebbe essere il problema.

Squit
02-04-2010, 15:25
Ciao cdimauro, grazie per la risposta! :)
Ti ho postato solo questo perché il resto dello script fa tutt'altro...
le funzioni Find e Scale fanno parte della libreria di Jack.
Al massimo posso spiegarti cosa fanno:

Find accetta una stringa come parametro e ritorna l'oggetto trovato con quel nome.
Scale è una funzione della classe Figure che, per l'appunto, effettua uno scaling dell'oggetto da cui è chiamata.

Spero di essere stato chiaro... :P

cdimauro
02-04-2010, 19:34
NameError lo dà perché non trova una variabile locale o globale (io propendo per quest'ultima).

Per cui vuol dire che quando esegui quel codice nella shell di Jack, l'ambiente d'esecuzione è diverso rispetto a quello dello script, e riesce a trovare quella variabile.

Devi capire perché ci sono queste differenze fra i due ambienti. La shell evidentemente carica / inizializza qualcosa alla partenza, che lo script non fa.

Squit
02-04-2010, 21:51
Eh sì, mi sa che è proprio questo il problema... non conoscendo bene il python, pensavo potesse essere un mio errore nello scrivere quella funzione.
Di sicuro sarebbe stato meglio un errore in quella funzione... la documentazione di Jack è pietosa... :P
Grazie mille per la disponibilità! :)