Klasy i obiekty Pythona
Klasy/obiekty Pythona
Python to język programowania obiektowego.
Prawie wszystko w Pythonie jest obiektem, z jego właściwościami i metodami.
Klasa jest jak konstruktor obiektów lub „plan” tworzenia obiektów.
Utwórz klasę
Aby utworzyć klasę, użyj słowa kluczowego class
:
Przykład
Utwórz klasę o nazwie MyClass z właściwością o nazwie x:
class MyClass:
x = 5
Utwórz obiekt
Teraz możemy użyć klasy o nazwie MyClass do tworzenia obiektów:
Przykład
Utwórz obiekt o nazwie p1 i wypisz wartość x:
p1 = MyClass()
print(p1.x)
Funkcja __init__()
Powyższe przykłady to klasy i obiekty w ich najprostszej formie i nie są tak naprawdę przydatne w rzeczywistych zastosowaniach.
Aby zrozumieć znaczenie klas, musimy zrozumieć wbudowaną funkcję __init__().
Wszystkie klasy mają funkcję o nazwie __init__(), która jest wykonywana zawsze, gdy klasa jest inicjowana.
Użyj funkcji __init__(), aby przypisać wartości do właściwości obiektu lub innych operacji, które są niezbędne do wykonania podczas tworzenia obiektu:
Przykład
Utwórz klasę o nazwie Person, użyj funkcji __init__(), aby przypisać wartości dla imienia i wieku:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John",
36)
print(p1.name)
print(p1.age)
Uwaga: Funkcja __init__()
jest wywoływana automatycznie za każdym razem, gdy klasa jest używana do tworzenia nowego obiektu.
Metody obiektowe
Obiekty mogą również zawierać metody. Metody w obiektach to funkcje należące do obiektu.
Stwórzmy metodę w klasie Person:
Przykład
Wstaw funkcję drukującą powitanie i wykonaj ją na obiekcie p1:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John",
36)
p1.myfunc()
Uwaga: parametr self
jest odniesieniem do bieżącej instancji klasy i służy do uzyskiwania dostępu do zmiennych należących do klasy.
Własny parametr
Parametr self
jest odniesieniem do bieżącej instancji klasy i służy do uzyskiwania dostępu do zmiennych należących do klasy.
Nie musi mieć nazwy self
, możesz ją nazwać jak chcesz, ale musi to być pierwszy parametr dowolnej funkcji w klasie:
Przykład
Użyj słów mysillyobject i abc zamiast self :
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John",
36)
p1.myfunc()
Modyfikuj właściwości obiektu
Możesz modyfikować właściwości obiektów w następujący sposób:
Przykład
Ustaw wiek p1 na 40:
p1.age = 40
Usuń właściwości obiektu
Możesz usunąć właściwości obiektów, używając
del
słowa kluczowego:
Przykład
Usuń właściwość wieku z obiektu p1:
del p1.age
Usuń obiekty
Możesz usuwać obiekty za pomocą del
słowa kluczowego:
Przykład
Usuń obiekt p1:
del p1
Oświadczenie o przepustce
class
definicje nie mogą być puste, ale jeśli z jakiegoś powodu masz class
definicję bez treści, umieść ją w pass
oświadczeniu, aby uniknąć błędu.
Przykład
class Person:
pass