Konstruktory Pythona

Konstruktory Pythona

Wstęp

Do tej pory powinieneś znać sposób, w jaki działają podstawowe zajęcia w Python. Gdyby zajęcia były właśnie tym, co widziałeś, byłyby dość sztywne i nie tak przydatne.

Na szczęście zajęcia to znacznie więcej niż tylko to. Są zaprojektowane tak, aby były bardziej elastyczne i mogą przyjmować informacje, aby kształtować się początkowo. Nie każdy samochód zaczyna dokładnie taki sam, podobnie jak klasy. W końcu, jak okropnie byłoby, gdyby każdy samochód był pomarańczowym 71 'Ford Pinto? To nie jest dobra sytuacja.

Pisanie klasy

Zacznij od założenia klasy takiej jak ta w ostatnim przewodniku. Ta klasa będzie ewoluować w trakcie tego przewodnika. Przejdzie od sztywnej, podobnej do kserokopii sytuacji do szablonu, który może generować wiele unikalnych obiektów w obrębie konturu klasy.

Napisz pierwszy wiersz klasy, określając ją jako klasę i nazywając. Ten przewodnik będzie trzymał się analogii samochodu z wcześniej. Nie zapomnij przekazać swojej klasy obiekt Aby rozszerzyła podstawę obiekt klasa.

Samochód klasy (obiekt): 

Poniżej wcięcie i utwórz swoje zmienne. Zwykle zmienne klasowe są pogrupowane u góry klasy, a metody są utrzymywane poniżej. Nie jest to ściśle obowiązkowe, ale pomaga zachować schludne kod. Twórz tylko zmienne do make, modelu, roku, przebiegu i koloru. Nie ma sensu budować super szczegółowej klasy.

make = "ford" model = "pinto" rok = "1971" Mileage = "253812" color = "Orange" 

W tym momencie możesz przetestować swoje zmienne, aby upewnić się, że klasa działa poprawnie. Utwórz i sprzeciwiaj się i spróbuj wydrukować model samochodu. Następnie ponownie przelicz zmienną modelu i wydrukuj ją ponownie.

myCar = car () print („Mój samochód to % s” % mycar.Model) Mycar.model = „Mustang” druk („Mój samochód to % s” % mycar.Model) 

To jest ulepszenie, ale twój samochód nadal nic nie może zrobić. Czas dodać metodę. Utwórz nową metodę w swojej klasie o nazwie pójść naprzód która akceptuje zmienną o nazwie „Prędkość.„Zatem wydrukuj model twojego samochodu i jak szybko idzie. Nie zapomnij włączyć samego siebie.

def Move_forward (Self, Speed): Drukuj („Twój %s idzie naprzód w %s” %(jaźń.model, prędkość)) 

Przetestuj to z klasą.

mój samochód.Move_forward („25 km / h”) 

Wszystko powinno idzie dobrze, a twój samochód powinien działać.

Tworzenie konstruktora

Zmiana zmiennych po utworzeniu obiektu jest niezgrabna i nieefektywna. Nie tylko marnujesz czas, ale także wzbudza kod. Jest to szczególnie prawdziwe, jeśli tworzysz wiele instancji tej samej klasy i zmieniasz każdą z nich.

Istnieje koncepcja w programowaniu zorientowanym na obiekty zwane konstruktor. Konstruktory to specjalne metody, które pozwalają obiektowi podejmować argumenty podczas jego tworzenia i automatycznie wykonywać działania. Zazwyczaj są one używane do przypisywania zmiennych w momencie tworzenia obiektu.

W przypadku Pythona tworzysz konstruktor, jak dowolna inna metoda, używając dev, Ale każdy konstruktor ma tę samą nazwę, __w tym__. Możesz myśleć o __w tym__ jako skrót do inicjalizacji, ponieważ jest uruchomiony po inicjowaniu obiektu.

Utwórz konstruktor swojego samochodu, który przyjmuje wszystkie zmienne jako parametry i przypisuje je do zmiennych instancji za pomocą samego siebie. Zmienna instancji to tylko zmienna, która istnieje w określonej instancji obiektu.

def __init __ (jaźń, marka, model, rok, przebieg, kolor): jaźń.Make = Make Self.Model = Model Self.Rok = rok.przebieg = jaźń przebieg.kolor = kolor 

Pamiętaj, aby usunąć stare deklaracje zmienne. Już ich nie potrzebujesz.

Za pomocą konstruktora

Uruchom ponownie kod i zobacz, co się stanie. Jeśli masz błąd, robisz to dobrze. Teraz za każdym razem, gdy tworzysz instancję Samochód(), Musisz przekazać to wystarczająco dużo argumentów, aby dopasować się do określonych parametrów.

Wróć i zmodyfikuj instancję mój samochód przekazać to wymagane argumenty.

MyCar = Car („Dodge”, „Challenger”, „2017”, 1500, „czarny”)

Uruchom ponownie kod. Wszystko powinno działać i powinieneś mieć inny samochód.

Jak już widziałeś, to nie jest idealny system. Co jeśli nadal chcesz domyślnego szablonu, więc nie musisz przekazywać każdego argumentu? Ty też możesz to zrobić. Musisz tylko ustawić każdy parametr w konstruktorze równy wartości, którą chcesz być domyślnym.

def __init __ (self, make = „ford”, model = „pinto”, rok = „1971”, przebieg = „253812”, color = 'Orange'): self self.Make = Make Self.Model = Model Self.Rok = rok.przebieg = jaźń przebieg.kolor = kolor 

Jeśli utworzysz nową instancję Samochód() I nic nie przekazuj, znów stworzy twoje stare, dobre Ford Pinto. Spróbuj porównać je obok siebie, aby zobaczyć różnicę.

myCar = car () mynewcar = car („Dodge”, „Challenger”, „2017”, 1500, „czarny”) mycar.MOVE_FORWARD („25 km / h) MyNewcar.Move_forward („85 km / h”) 

Zamykanie myśli

Byłoby ssące, gdyby każdy samochód był 71 -metrowy Ford Pinto. To samo dla obiektów. Gdybyś musiał utworzyć nową klasę jako szablon dla każdej odmiany obiektu, tak naprawdę nie miałby żadnej wartości w programowaniu zorientowanym na obiekty. Konstruktory pozwalają klasom być znacznie bardziej płynnym i elastycznym. Możesz utworzyć tyle różnych nowych instancji obiektu, ile potrzebujesz z tej samej klasy, nigdy nie musisz wracać i niczego.

Ćwicz tworzenie nowej klasy i dodanie konstruktora, a następnie korzystanie z tej klasy nieco w skrypcie.

Ćwiczenia

  1. Utwórz nową klasę o nazwie „komputer."
  2. Utwórz konstruktor „komputera”, który przyjmuje cztery zmienne.
  3. Wydrukuj jedną ze swoich zmiennych. Ponownie oceń jego wartość i wydrukuj ponownie.
  4. Stwórz metodę wykorzystującą co najmniej dwie zmienne.
  5. Zaimplementuj konstruktor „komputera”, który akceptuje wszystkie twoje zmienne.
  6. Utwórz nową instancję „komputera” i przekaż poprawne argumenty.
  7. Uruchom swoją metodę w nowej instancji „komputera."
  8. Dodaj wartości domyślne do konstruktora „komputerowego”.
  9. Utwórz pustą instancję „komputera."
  10. Uruchom swoją metodę w nowej pustej instancji.

Powiązane samouczki Linux:

  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Mastering Bash Script Loops
  • Hung Linux System? Jak uciec do wiersza poleceń i…
  • Zagnieżdżone pętle w skryptach Bash
  • Ubuntu 20.04 Przewodnik
  • Samouczek debugowania GDB dla początkujących
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…