Jump to content

Środowisko Python

From FreeCAD Documentation
This page is a translated version of the page Python and the translation is 100% complete.

Opis

Python to wysokopoziomowy język programowania ogólnego przeznaczenia, który jest bardzo powszechnie wykorzystywany w dużych aplikacjach do automatyzacji pewnych zadań poprzez tworzenie skryptów lub makr.

We FreeCAD, kod Pythona może być stosowany do tworzenia różnych elementów programowo, bez potrzeby klikania w interfejsie graficznym użytkownika. Ponadto, wiele narzędzi i środowisk pracy we FreeCAD jest zaprogramowanych w Pythonie.

Zobacz stronę Wprowadzenie do Pythona, aby zapoznać się z językiem programowania Python, a następnie sprawdź Poradnik pisania skryptów w Pythonie oraz Podstawy tworzenia skryptów we FreeCAD, aby rozpocząć tworzenie skryptów we FreeCAD.

Czytelność

Czytelność kodu w Pythonie jest jednym z najważniejszych aspektów tego języka. Stosowanie jasnego i spójnego stylu w społeczności Pythona ułatwia wkład różnych programistów, ponieważ większość doświadczonych programistów Pythona oczekuje, że kod będzie sformatowany w określony sposób i będzie przestrzegał określonych zasad. Podczas pisania kodu w Pythonie zaleca się stosowanie do dokumentu PEP8: Style Guide for Python Code oraz PEP257: Docstring Conventions.

Te dokumenty zawierają wyjaśnienia w bardziej przyjaznej dla użytkownika formie:

Konwencje

W tej dokumentacji należy stosować się do niektórych konwencji dotyczących przykładów w Pythonie.

To jest typowa sygnatura funkcji

Wire = make_wire(pointslist, closed=False, placement=None, face=None, support=None)
  • Argumenty w postaci par klucz-wartość są opcjonalne, a wartość domyślna jest podana w sygnaturze. Oznacza to, że następujące wywołania są równoważne:
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)
W tym przykładzie, pierwszy argument nie ma domyślnej wartości, więc powinien być zawsze uwzględniony.
  • Gdy argumenty są podane z wyraźnym kluczem, argumenty opcjonalne można podawać w dowolnej kolejności. Oznacza to, że następujące wywołania są równoważne:
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)
  • Wytyczne Pythona podkreślają czytelność kodu; w szczególności nawiasy powinny bezpośrednio następować po nazwie funkcji, a po przecinku powinna znajdować się spacja.
p1 = Vector(0, 0, 0)
p2 = Vector(1, 1, 0)
p3 = Vector(2, 0, 0)
Wire = make_wire([p1, p2, p3], closed=True)
  • Jeśli kod musi być podzielony na kilka linii, należy to zrobić przy przecinku wewnątrz nawiasów kwadratowych lub okrągłych; druga linia powinna być wyrównana z poprzednią.
a_list = [1, 2, 3,
          2, 4, 5]

Wire = make_wire(pointslist,
                False, None,
                None, None)
  • Funkcje mogą zwracać obiekt, który może być użyty jako baza dla innej funkcji rysującej.
Wire = make_wire(pointslist, closed=True, face=True)
Window = make_window(Wire, name="Big window")

Importy

Funkcje Pythona są przechowywane w plikach zwanych modułami. Zanim użyjesz jakiejkolwiek funkcji z danego modułu, moduł musi zostać dołączony do dokumentu za pomocą instrukcji import.

Tworzy to funkcje z prefiksem, czyli module.function(). System ten zapobiega konfliktom nazw funkcji, które mają taką samą nazwę, ale pochodzą z różnych modułów. Na przykład dwie funkcje Arch.make_window() i myModule.make_window() mogą współistnieć bez problemu.

Pełne przykłady powinny zawierać niezbędne importy oraz funkcje z prefiksem.

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