Python/es: Difference between revisions

From FreeCAD Documentation
(Created page with "== Importaciones ==")
(Updating to match new version of source page)
 
(18 intermediate revisions by one other user not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{VeryImportantMessage|FreeCAD was originally designed to work with Python 2.x. This series ended with 2.7.18 release dated April, 20th 2020 and is succeeded by Python 3. The further development of FreeCAD will be done exclusively with Python 3, and backwards compatibility will not be supported.}}
{{VeryImportantMessage|FreeCAD fue originalmente diseñado para trabajar con Python 2.x. Esta serie terminó con la versión 2.7.18 del 20 de abril de 2020 y es sucedida por Python 3. El desarrollo posterior de FreeCAD se hará exclusivamente con Python 3, y no se apoyará la compatibilidad hacia atrás.}}


==Descripción==
==Descripción==
Line 6: Line 6:
{{TOCright}}
{{TOCright}}


[https://www.python.org Python] is a general purpose, high level programming language that is very commonly used in large applications to automate some tasks by creating scripts or [[macros|macros]].
[https://www.python.org Python] es un lenguaje de programación de propósito general y de alto nivel que se utiliza muy comúnmente en grandes aplicaciones para automatizar algunas tareas mediante la creación de scripts o [[macros/es|macros]].


In FreeCAD, Python code can be used to create various elements programmatically, without needing to click on the graphical user interface. Additionally, many tools and workbenches of FreeCAD are programmed in Python.
En FreeCAD, el código Python se puede utilizar para crear varios elementos de forma programada, sin necesidad de hacer clic en la interfaz gráfica de usuario. Además, muchas herramientas y ambientes de trabajo de FreeCAD están programados en Python.


See [[Introduction to Python|Introduction to Python]] to learn about the Python programming language, and then [[Python scripting tutorial|Python scripting tutorial]] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]] to start scripting in FreeCAD.
Ver [[Introduction to Python/es|Introducción a Python]] para aprender sobre el lenguaje de programación Python, y luego [[Python scripting tutorial/es|Python Tutorial de guión]] y [[FreeCAD Scripting Basics/es|Fundamentos de FreeCAD Guión]] para empezar a hacer scripts en FreeCAD.


== Legibilidad ==
== Legibilidad ==


Readability of Python code is one of the most important aspects of this language. Using a clear and consistent style within the Python community facilitates contributions by different developers, as most experienced Python programmers expect the code to be formatted in a certain way and to follow certain rules. When writing Python code, it is advisable to follow [https://www.python.org/dev/peps/pep-0008/ PEP8: Style Guide for Python Code] and [https://www.python.org/dev/peps/pep-0257/ PEP257: Docstring Conventions].
La legibilidad del código Python es uno de los aspectos más importantes de este lenguaje. El uso de un estilo claro y consistente dentro de la comunidad Python facilita las contribuciones de los diferentes desarrolladores, ya que la mayoría de los programadores experimentados de Python esperan que el código tenga un formato determinado y siga ciertas reglas. Al escribir código Python, es aconsejable seguir [https://www.python.org/dev/peps/pep-0008/ PEP8: Style Guide for Python Code] y [https://www.python.org/dev/peps/pep-0257/ PEP257: Docstring Conventions].


Estos documentos presentan las explicaciones de una manera más fácil de usar:
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/ Cómo escribir un hermoso código Python con PEP 8]
* [https://realpython.com/documenting-python-code/ Documenting Python Code: A Complete Guide].
* [https://realpython.com/documenting-python-code/ Documenting Python Code: Una Guía Completa].


== Conventions ==
== Convenciones ==
En esta documentación deben seguirse algunas convenciones para los ejemplos de Python.
In this documentation, some conventions for Python examples should be followed.


Esta es una signatura de función típica
This is a typical function signature


{{Code|code=
{{Code|code=
Line 29: Line 29:
}}
}}


* Los argumentos con pares clave-valor son opcionales, con el valor por defecto indicado en la firma. Esto significa que las siguientes llamadas son equivalentes:
* 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 39: Line 39:
}}
}}


: En este ejemplo, el primer argumento no tiene un valor por defecto, por lo que debe incluirse siempre.
: In this example the first argument doesn't have a default value so it should always be included.


* Cuando los argumentos se dan con la clave explícita, los argumentos opcionales pueden darse en cualquier orden. Esto significa que las siguientes llamadas son equivalentes:
* 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 49: Line 49:
}}
}}


* Las directrices de Python hacen hincapié en la legibilidad del código; en particular, los paréntesis deben seguir inmediatamente al nombre de la función, y un espacio debe seguir a una coma.
* 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 58: Line 58:
}}
}}


* Si es necesario dividir el código en varias líneas, debe hacerse con una coma dentro de paréntesis o corchetes; la segunda línea debe alinearse con la anterior.
* 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 69: Line 69:
}}
}}


* Las funciones pueden devolver un objeto que puede ser utilizado como base de otra función de dibujo.
* 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:
== Importaciones ==
== Importaciones ==


Funciones de Python se almacenan en archivos llamados módulos. Antes de utilizar cualquier función en ese módulo, el módulo debe ser incluido en el documento con la instrucción {{incode|import}}.
Python functions are stored in files called modules. Before using any function in that module, the module must be included in the document with the {{incode|import}} instruction.


This creates prefixed functions, that is, {{incode|module.function()}}. This system prevents name clashes with functions that are named the same but that come from different modules.
Esto crea funciones prefijadas, es decir, {{incode|module.function()}}. Este sistema evita los choques de nombres con funciones que se llaman igual pero que provienen de módulos diferentes.
For example, the two functions {{incode|Arch.make_window()}} and {{incode|myModule.make_window()}} may coexist without problem.
Por ejemplo, las dos funciones {{incode|Arch.make_window()}} y {{incode|myModule.make_window()}} pueden coexistir sin problema.


Ejemplos completos deben incluir las importaciones necesarias y las funciones prefijadas.
Full examples should include the necessary imports and the prefixed functions.


{{Code|code=
{{Code|code=
Line 111: Line 111:
{{Powerdocnavi{{#translation:}}}}
{{Powerdocnavi{{#translation:}}}}
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]
[[Category:API Documentation{{#translation:}}]]
[[Category:API{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
[[Category:Glossary{{#translation:}}]]
[[Category:Glossary{{#translation:}}]]

Latest revision as of 09:22, 17 October 2021

FreeCAD fue originalmente diseñado para trabajar con Python 2.x. Esta serie terminó con la versión 2.7.18 del 20 de abril de 2020 y es sucedida por Python 3. El desarrollo posterior de FreeCAD se hará exclusivamente con Python 3, y no se apoyará la compatibilidad hacia atrás.

Descripción

Python es un lenguaje de programación de propósito general y de alto nivel que se utiliza muy comúnmente en grandes aplicaciones para automatizar algunas tareas mediante la creación de scripts o macros.

En FreeCAD, el código Python se puede utilizar para crear varios elementos de forma programada, sin necesidad de hacer clic en la interfaz gráfica de usuario. Además, muchas herramientas y ambientes de trabajo de FreeCAD están programados en Python.

Ver Introducción a Python para aprender sobre el lenguaje de programación Python, y luego Python Tutorial de guión y Fundamentos de FreeCAD Guión para empezar a hacer scripts en FreeCAD.

Legibilidad

La legibilidad del código Python es uno de los aspectos más importantes de este lenguaje. El uso de un estilo claro y consistente dentro de la comunidad Python facilita las contribuciones de los diferentes desarrolladores, ya que la mayoría de los programadores experimentados de Python esperan que el código tenga un formato determinado y siga ciertas reglas. Al escribir código Python, es aconsejable seguir PEP8: Style Guide for Python Code y PEP257: Docstring Conventions.

Estos documentos presentan las explicaciones de una manera más fácil de usar:

Convenciones

En esta documentación deben seguirse algunas convenciones para los ejemplos de Python.

Esta es una signatura de función típica

Wire = make_wire(pointslist, closed=False, placement=None, face=None, support=None)
  • Los argumentos con pares clave-valor son opcionales, con el valor por defecto indicado en la firma. Esto significa que las siguientes llamadas son equivalentes:
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)
En este ejemplo, el primer argumento no tiene un valor por defecto, por lo que debe incluirse siempre.
  • Cuando los argumentos se dan con la clave explícita, los argumentos opcionales pueden darse en cualquier orden. Esto significa que las siguientes llamadas son equivalentes:
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)
  • Las directrices de Python hacen hincapié en la legibilidad del código; en particular, los paréntesis deben seguir inmediatamente al nombre de la función, y un espacio debe seguir a una coma.
p1 = Vector(0, 0, 0)
p2 = Vector(1, 1, 0)
p3 = Vector(2, 0, 0)
Wire = make_wire([p1, p2, p3], closed=True)
  • Si es necesario dividir el código en varias líneas, debe hacerse con una coma dentro de paréntesis o corchetes; la segunda línea debe alinearse con la anterior.
a_list = [1, 2, 3,
          2, 4, 5]

Wire = make_wire(pointslist,
                False, None,
                None, None)
  • Las funciones pueden devolver un objeto que puede ser utilizado como base de otra función de dibujo.
Wire = make_wire(pointslist, closed=True, face=True)
Window = make_window(Wire, name="Big window")

Importaciones

Funciones de Python se almacenan en archivos llamados módulos. Antes de utilizar cualquier función en ese módulo, el módulo debe ser incluido en el documento con la instrucción import.

Esto crea funciones prefijadas, es decir, module.function(). Este sistema evita los choques de nombres con funciones que se llaman igual pero que provienen de módulos diferentes. Por ejemplo, las dos funciones Arch.make_window() y myModule.make_window() pueden coexistir sin problema.

Ejemplos completos deben incluir las importaciones necesarias y las funciones prefijadas.

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")