# Analisi del Codice

**URL:** <https://it.discourse.mcneel.com/t/analisi-del-codice/4935>\
**Category:** Scripting e Programmazione\
**Created:** [7 Febbraio 2023, 10:27pm UTC](https://it.discourse.mcneel.com/t/analisi-del-codice/4935 "2023-02-07T22:27:32Z")\
**Posts on this page:** 6\
**Page:** 4

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [20 Febbraio 2023, 6:32pm UTC](https://it.discourse.mcneel.com/t/analisi-del-codice/4935/61 "2023-02-20T18:32:14Z")

</div>

> [@0904](#):
>
> intendevi l’inverso

Non mi risulta

> [@0904](#):
>
> il **valore 4** da te esposto lo ricavi convertendo il **risultato stringa** dell’enum ObjectType in questo caso

Se converti in intero la stringa ‘Curve’, certo non ottieni 4.

> [@emilio](#):
>
> ```auto
> variabile tipo valore str() int()
> a | ObjectType | 4 | 'Curve' | 4
> 
> ```

qui int() si riferisce a int(a) o int(ObjectType.Curve), non a int(“Curve”),  
come hai giustamente indicato sotto:

> [@0904](#):
>
> quindi di default:  
> print(ObjectType)  
> output: **Member name**
> 
> convertendolo in int  
> print((int)ObjectType)  
> output: **Value**

Comunque a parole puo’ essere difficile capirsi, dato anche che mi sembra che a volte chiamiamo le cose con nomi diversi.  
Discutere su cose che possiamo verificare in pratica non ha senso.  
Basta fare una prova.  
Spero che questo metta tutti d’accordo

![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/5/5824415b40bf16ceff6148a66739138a65571526.png)

![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/6/60ff0dd484168c8864f43f539e45821a5f1b9a96.png)

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [20 Febbraio 2023, 10:06pm UTC](https://it.discourse.mcneel.com/t/analisi-del-codice/4935/62 "2023-02-20T22:06:09Z")

</div>

> [@emilio](#):
>
> qui int() si riferisce a int(a) o int(ObjectType.Curve), non a int(“Curve”),  
> come hai giustamente indicato sotto:
> 
> quindi di default:  
> print(ObjectType)  
> output: **Member name**
> 
> convertendolo in int  
> print((int)ObjectType)  
> output: **Value**

solo adesso sono riuscito a collegarmi  
esatto avevo letto la tua risposta e volevo proprio sottolineare questo (mi sono un pò impappinato 😉 )  
ciò che hai indicato da me postato, è la corretta spiegazione che volevo dare.

> [@emilio](#):
>
> Non mi risulta

hai ragione a volte le immagini valgono più di mille parole:

![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/a/a6607ded1815af646d0f7bb2b3b790f3068abc2c.png)

per come la vedo io dal risultato degli output,  
il primo print riporta che è un’oggetto  
il secondo mi stampa il tipo di oggetto (curva)  
il terzo per riportarmi il valore “numerico 4” lo debbo convertire con int

quindi c’é la conversione da tipo di oggetto in questo caso “curve” al suo valore numerico corrispondente 4

ps la mia **curiosità** non era nel “chi converte cosa” ma com’è impostato il codice che fa tutto ciò  
ovviamente non’é che si deve sapere questo, non cambia nulla per chi deve scrivere un codice  
essendo che in questo caso, si sa cosa fa **enum** si sa come usarlo e va bene cosi  
ma mi intrigava questa cosa che se converto con int un tipo oggetti mi riporta il valore  
(tutto qua)

mah forse chissà, se facendo la domanda al forum internazionale qualcuno che sapeva avrebbe risposto.  
oppure rispondevano con: Te c’hanno mai mannato a quel paese. . . ahahahah

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [20 Febbraio 2023, 10:55pm UTC](https://it.discourse.mcneel.com/t/analisi-del-codice/4935/63 "2023-02-20T22:55:54Z")

</div>

> [@0904](#):
>
> il primo print riporta che è un’oggetto

Veramente dice che il tipo e’ **ObjectType** , che, se andiamo a vedere,  
e’ una **enum** :  
[ObjectType Enumeration (rhino3d.com)](https://developer.rhino3d.com/api/RhinoCommon/html/T_Rhino_DocObjects_ObjectType.htm)  
Io direi che il tipo e’ una enum … 😉  
Poi dipende cosa intendi con ‘oggetto’ … 😕

> [@0904](#):
>
> il secondo mi stampa il tipo di oggetto (curva)

Stampa il **Member name** di quel valore (che appartiene alla enum ObjectType).  
Come abbiamo visto, e’ cio’ che fa il linguaggio in questi casi.

> [@0904](#):
>
> conversione da tipo di oggetto in questo caso “curve” al suo valore numerico

Se tu chiami ‘tipo di oggetto’ il ‘Member name’, OK.

Come gia’ detto, credo che stiamo solo usando nomi diversi per le stesse cose …  
L’importante e’ riuscire a usare una **enum** quando serve nel nostro script … 😀

… Certo non e’ semplice cercare di seguire i ragionamenti che scrivi se cambi i nomi alle cose secondo l’oroscopo … o una cosa del genere …  
😉 😄

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [20 Febbraio 2023, 11:15pm UTC](https://it.discourse.mcneel.com/t/analisi-del-codice/4935/64 "2023-02-20T23:15:58Z")

</div>

però sta volta non dovrebbe essere complicato

```auto
import Rhino
print Rhino.DocObjects.ObjectType.Curve
print int(Rhino.DocObjects.ObjectType.Curve)

import rhinoscriptsyntax as rs
print rs.ObjectType(rs.GetObject())

```

> output:  
> Curve  
> 4  
> 4

nell’ultimo caso il valore numerico è di default mentre nel secondo lo si deve convertire in int dal primo

vabbè comunque, come hai detto diciamo la stessa cosa in modi diversi 👍

> [@emilio](#):
>
> … Certo non e’ semplice cercare di seguire i ragionamenti che scrivi se cambi i nomi alle cose secondo l’oroscopo … o una cosa del genere …  
> 😉 😄

🤣 🤣 🤣

abbè Emilio, mi sa che la mia storia sul forum è ben chiara  
cambiare o meno i nomi è indifferente, tanto non cambia ahahahah

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [21 Febbraio 2023, 11:09am UTC](https://it.discourse.mcneel.com/t/analisi-del-codice/4935/65 "2023-02-21T11:09:52Z")

</div>

@emilio giusto perché un po so che anche a te piaccino queste cose;  
in VisualStudio con le parole chiavi (non so se con tutte)  
premendo CTRL e cliccandoci sopra apre il suo modulo  
non so, credo che sia il codice col quale va a lavorare. . .

questo è per **enum**

 ![enum](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/1/15f949e536738d54a5306f2e62ec28b504982ecd.png)

questo invece per **int**

 ![immagine](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/7/7a97c81bd9c20dcd881499cb8e873bf1182029ac.png)

ho postato solo le foto se secondo te va bene per farsi un’idea  
ma mi sono copiato anche il codice completo essendo che  
dove ci sono i 3 punti sono altre righe abbastanza lunghe  
poi se serve mi fai sapere che posto tutto il codice. . .

mi sono ricordato di questa cosa spero possa servire 😉

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [21 Febbraio 2023, 11:18am UTC](https://it.discourse.mcneel.com/t/analisi-del-codice/4935/66 "2023-02-21T11:18:30Z")

</div>

Ciao Salvio, grazie.

> [@0904](#):
>
> credo che sia il codice col quale va a lavorare. . .

Io lo chiamo elenco di proprieta’ e metodi di quella classe.  
… Ma forse intendiamo la stessa cosa. 😉

[Pagina precedente](https://it.discourse.mcneel.com/t/analisi-del-codice/4935.md?page=3)
