Python/it: Difference between revisions
No edit summary |
(Created page with "Gli esempi completi dovrebbero includere le importazioni necessarie e le funzioni prefissate.") |
||
(14 intermediate revisions by the same user not shown) | |||
Line 16: | Line 16: | ||
== Leggibilità == |
== Leggibilità == |
||
La leggibilità del codice Python è uno degli aspetti più importanti di questo linguaggio. L'uso di uno stile chiaro e coerente all'interno della comunità Python facilita i contributi da parte di diversi sviluppatori, poiché i programmatori Python più esperti si aspettano che il codice sia formattato in un certo modo e segua determinate regole. Quando si scrive codice Python, è consigliabile seguire [https://www.python.org/dev/peps/pep-0008/ PEP8: Style Guide for Python Code] e [https://www.python.org/dev/peps/pep-0257/ PEP257: Docstring Conventions]. |
|||
Questi documenti presentano le spiegazioni in modo più intuitivo: |
|||
These documents present explanations in a more user-friendly way: |
|||
* [https://realpython.com/python-pep8/ How to Write Beautiful Python Code With PEP 8] |
* [https://realpython.com/python-pep8/ How to Write Beautiful Python Code With PEP 8] |
||
* [https://realpython.com/documenting-python-code/ Documenting Python Code: A Complete Guide]. |
* [https://realpython.com/documenting-python-code/ Documenting Python Code: A Complete Guide]. |
||
== |
== Convenzioni == |
||
In questa documentazione dovrebbero essere seguite alcune convenzioni per gli esempi Python. |
|||
In this documentation, some conventions for Python examples should be followed. |
|||
Questa è una tipica firma di funzione |
|||
This is a typical function signature |
|||
{{Code|code= |
{{Code|code= |
||
Line 31: | Line 31: | ||
}} |
}} |
||
* Gli argomenti con coppie chiave-valore sono facoltativi, con il valore predefinito indicato nella firma. Ciò significa che le seguenti chiamate sono equivalenti: |
|||
* Arguments with key-value pairs are optional, with the default value indicated in the signature. This means that the following calls are equivalent: |
|||
{{Code|code= |
{{Code|code= |
||
Line 41: | Line 41: | ||
}} |
}} |
||
: In questo esempio il primo argomento non ha un valore predefinito quindi dovrebbe essere sempre incluso. |
|||
: In this example the first argument doesn't have a default value so it should always be included. |
|||
* Quando gli argomenti vengono forniti con la chiave esplicita, gli argomenti opzionali possono essere forniti in qualsiasi ordine. Ciò significa che le seguenti chiamate sono equivalenti: |
|||
* When the arguments are given with the explicit key, the optional arguments can be given in any order. This means that the following calls are equivalent: |
|||
{{Code|code= |
{{Code|code= |
||
Wire = make_wire(pointslist, closed=False, placement=None, face=None) |
Wire = make_wire(pointslist, closed=False, placement=None, face=None) |
||
Line 51: | Line 51: | ||
}} |
}} |
||
* Le linee guida di Python sottolineano la leggibilità del codice; in particolare, le parentesi dovrebbero seguire immediatamente il nome della funzione e uno spazio dovrebbe seguire una virgola. |
|||
* Python's guidelines stress readability of code; in particular, parentheses should immediately follow the function name, and a space should follow a comma. |
|||
{{Code|code= |
{{Code|code= |
||
Line 60: | Line 60: | ||
}} |
}} |
||
* Se è necessario suddividere il codice su più righe, ciò dovrebbe essere fatto con una virgola tra parentesi quadre o parentesi quadre; la seconda riga dovrebbe essere allineata con la precedente. |
|||
* If code needs to be broken over several lines, this should be done at a comma inside brackets or parentheses; the second line should be aligned with the previous one. |
|||
{{Code|code= |
{{Code|code= |
||
Line 71: | Line 71: | ||
}} |
}} |
||
* Le funzioni possono restituire un oggetto che può essere utilizzato come base di un'altra funzione di disegno. |
|||
* Functions may return an object that can be used as the base of another drawing function. |
|||
{{Code|code= |
{{Code|code= |
||
Wire = make_wire(pointslist, closed=True, face=True) |
Wire = make_wire(pointslist, closed=True, face=True) |
||
Line 77: | Line 77: | ||
}} |
}} |
||
= |
<span id="Imports"></span> |
||
== Importazione == |
|||
Python |
Le funzioni Python sono archiviate in file chiamati moduli. Prima di utilizzare qualsiasi funzione in quel modulo, il modulo deve essere incluso nel documento con l'istruzione {{incode|import}}. |
||
Questo crea funzioni con prefisso, ovvero {{incode|module.function()}}. Questo sistema previene conflitti di nome con funzioni che hanno lo stesso nome ma che provengono da moduli diversi. |
|||
Ad esempio, le due funzioni {{incode|Arch.make_window()}} e {{incode|myModule.make_window()}} possono coesistere senza problemi. |
|||
Gli esempi completi dovrebbero includere le importazioni necessarie e le funzioni prefissate. |
|||
Full examples should include the necessary imports and the prefixed functions. |
|||
{{Code|code= |
{{Code|code= |
Latest revision as of 10:24, 27 August 2023
Descrizione
Python è un linguaggio di programmazione di alto livello per scopi generali, comunemente utilizzato in applicazioni di grandi dimensioni per automatizzare alcune attività creando script o macro.
In FreeCAD, il codice Python può essere utilizzato per creare vari elementi in modo programmatico, senza la necessità di fare clic sull'interfaccia utente grafica. Inoltre, molti strumenti e ambienti di lavoro di FreeCAD sono programmati in Python.
Vedere Introduzione a Python per conoscere il linguaggio di programmazione Python, quindi Guida agli Script Python e Script di base per FreeCAD per iniziare a creare script in FreeCAD .
Leggibilità
La leggibilità del codice Python è uno degli aspetti più importanti di questo linguaggio. L'uso di uno stile chiaro e coerente all'interno della comunità Python facilita i contributi da parte di diversi sviluppatori, poiché i programmatori Python più esperti si aspettano che il codice sia formattato in un certo modo e segua determinate regole. Quando si scrive codice Python, è consigliabile seguire PEP8: Style Guide for Python Code e PEP257: Docstring Conventions.
Questi documenti presentano le spiegazioni in modo più intuitivo:
Convenzioni
In questa documentazione dovrebbero essere seguite alcune convenzioni per gli esempi Python.
Questa è una tipica firma di funzione
Wire = make_wire(pointslist, closed=False, placement=None, face=None, support=None)
- Gli argomenti con coppie chiave-valore sono facoltativi, con il valore predefinito indicato nella firma. Ciò significa che le seguenti chiamate sono equivalenti:
Wire = make_wire(pointslist, False, None, None, None)
Wire = make_wire(pointslist, False, None, None)
Wire = make_wire(pointslist, False, None)
Wire = make_wire(pointslist, False)
Wire = make_wire(pointslist)
- In questo esempio il primo argomento non ha un valore predefinito quindi dovrebbe essere sempre incluso.
- Quando gli argomenti vengono forniti con la chiave esplicita, gli argomenti opzionali possono essere forniti in qualsiasi ordine. Ciò significa che le seguenti chiamate sono equivalenti:
Wire = make_wire(pointslist, closed=False, placement=None, face=None)
Wire = make_wire(pointslist, closed=False, face=None, placement=None)
Wire = make_wire(pointslist, placement=None, closed=False, face=None)
Wire = make_wire(pointslist, support=None, closed=False, placement=None, face=None)
- Le linee guida di Python sottolineano la leggibilità del codice; in particolare, le parentesi dovrebbero seguire immediatamente il nome della funzione e uno spazio dovrebbe seguire una virgola.
p1 = Vector(0, 0, 0)
p2 = Vector(1, 1, 0)
p3 = Vector(2, 0, 0)
Wire = make_wire([p1, p2, p3], closed=True)
- Se è necessario suddividere il codice su più righe, ciò dovrebbe essere fatto con una virgola tra parentesi quadre o parentesi quadre; la seconda riga dovrebbe essere allineata con la precedente.
a_list = [1, 2, 3,
2, 4, 5]
Wire = make_wire(pointslist,
False, None,
None, None)
- Le funzioni possono restituire un oggetto che può essere utilizzato come base di un'altra funzione di disegno.
Wire = make_wire(pointslist, closed=True, face=True)
Window = make_window(Wire, name="Big window")
Importazione
Le funzioni Python sono archiviate in file chiamati moduli. Prima di utilizzare qualsiasi funzione in quel modulo, il modulo deve essere incluso nel documento con l'istruzione import
.
Questo crea funzioni con prefisso, ovvero module.function()
. Questo sistema previene conflitti di nome con funzioni che hanno lo stesso nome ma che provengono da moduli diversi.
Ad esempio, le due funzioni Arch.make_window()
e myModule.make_window()
possono coesistere senza problemi.
Gli esempi completi dovrebbero includere le importazioni necessarie e le funzioni prefissate.
import FreeCAD as App
import Draft
p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1, 1, 0)
p3 = App.Vector(2, 0, 0)
Wire = Draft.make_wire([p1, p2, p3], closed=True)
import FreeCAD as App
import Draft
import Arch
p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1, 0, 0)
p3 = App.Vector(1, 1, 0)
p4 = App.Vector(0, 2, 0)
pointslist = [p1, p2, p3, p4]
Wire = Draft.make_wire(pointslist, closed=True, face=True)
Structure = Arch.make_structure(Wire, name="Big pillar")
- FreeCAD scripting: Python, Introduction to Python, Python scripting tutorial, FreeCAD Scripting Basics
- Modules: Builtin modules, Units, Quantity
- Workbenches: Workbench creation, Gui Commands, Commands, Installing more workbenches
- Meshes and Parts: Mesh Scripting, Topological data scripting, Mesh to Part, PythonOCC
- Parametric objects: Scripted objects, Viewproviders (Custom icon in tree view)
- Scenegraph: Coin (Inventor) scenegraph, Pivy
- Graphical interface: Interface creation, Interface creation completely in Python (1, 2, 3, 4, 5), PySide, PySide examples beginner, intermediate, advanced
- Macros: Macros, How to install macros
- Embedding: Embedding FreeCAD, Embedding FreeCADGui
- Other: Expressions, Code snippets, Line drawing function, FreeCAD vector math library (deprecated)
- Hubs: User hub, Power users hub, Developer hub