Jak utworzyć klasę w Pythonie (programowanie obiektowe)

Dowiedz się, jak utworzyć klasę w Pythonie. Opanuj konstruktora __init__, metody instancji, słowo kluczowe self i tworzenie instancji obiektów.

Wypróbuj to rozwiązanie w Edytorze

Przegląd

Programowanie zorientowane obiektowo (OOP) to potężny paradygmat używany do modelowania jednostek w świecie rzeczywistym, strukturyzacji aplikacji i promowania możliwości ponownego użycia kodu. W Pythonie wszystko jest obiektem, a klasy to plany, na podstawie których tworzone są poszczególne obiekty. Tworzenie klasy umożliwia łączenie atrybutów danych i funkcji w jedną całość.

Aby zdefiniować klasę, użyj słowa kluczowego „class”, po którym następuje nazwa klasy (konwencjonalnie zapisana w PascalCase). Wewnątrz klasy najważniejszą metodą jest konstruktor: `__init__(self, ...)`. Ta specjalna magiczna metoda jest wykonywana automatycznie podczas tworzenia instancji klasy, inicjując początkowe atrybuty danych obiektu.

Parametr `self` reprezentuje konkretną instancję klasy, którą aktualnie tworzysz lub modyfikujesz. Każda metoda instancji w klasie musi akceptować „self” jako swój pierwszy argument. Metody instancji to funkcje zdefiniowane wewnątrz klasy, które działają na atrybutach obiektu, umożliwiając czystą hermetyzację logiki.

Dane wyjściowe kodu i wykonania

Ten skrypt demonstruje tworzenie klasy, definiowanie właściwości, metod instancji klasy i tworzenie obiektów.

create_class.py
Spróbuj w Edytorze
# 1. Defining a class
class User:
    def __init__(self, username, email):
        self.username = username
        self.email = email
        self.active = True  # Default attribute

    def get_info(self):
        status = "Active" if self.active else "Inactive"
        return f"User: {self.username} | Email: {self.email} | Status: {status}"

# 2. Instantiating objects of the class
user1 = User("codeguy", "guy@example.com")
user2 = User("pygirl", "girl@example.com")

# 3. Accessing attributes and invoking methods
print(user1.get_info())
print(user2.username, "has email", user2.email)
Wyjście terminala
User: codeguy | Email: guy@example.com | Status: Active
pygirl has email girl@example.com

Wdrażanie krok po kroku

  • Użyj słowa kluczowego class, aby zadeklarować szablon klasy.
  • Zdefiniuj konstruktor __init__(self, ...), aby skonfigurować początkowe atrybuty.
  • Dodaj metody instancji, które akceptują self jako pierwszy parametr do pracy ze stanem obiektu.
  • Wywołaj ClassName(...), aby utworzyć instancję i utworzyć nową instancję obiektu.

Często zadawane pytania

Co reprezentuje parametr self?

Odnosi się do konkretnej instancji obiektu, który jest tworzony lub którym manipuluje się. Wymagane jest powiązanie atrybutów z instancją.

Czy klasa może mieć atrybuty wspólne dla wszystkich instancji?

Tak, to są atrybuty klas. Zdefiniuj je bezpośrednio pod nagłówkiem klasy (poza __init__) i uzyskaj do nich dostęp za pomocą ClassName.attribute.

Powiązane tematy

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.