Czym jest self w Pythonie: przykłady z życia wzięte
Czym jest self w Pythonie: przykłady z życia wzięte
Pisząc zajęcia w Pythonie, często możesz spotkać się z terminem 'self.'
Jest to kluczowa koncepcja, którą początkujący muszą zrozumieć, gdy zagłębiają się w funkcje zorientowane obiektowo w języku programowania Python.
Parametr self
odnosi się do bieżącej instancji klasy. Możesz go użyć, aby uzyskać dostęp do atrybutów i metod należących do tej klasy.
W tym samouczku Pythona przyjrzymy się, w jaki sposób self
zmienna odgrywa kluczową rolę w klasach Pythona. Pokażemy Ci również, jak zachować przejrzystość kodu, modułowość i możliwość ponownego użycia dzięki wykorzystaniu self
.
Spis treści
Zrozumienie siebie w Pythonie
Python to język programowania zorientowanego obiektowo (OOP) , który w dużym stopniu opiera się na klasach i obiektach. Tak więc, zanim zagłębimy się w self
parametr, musimy najpierw zrozumieć, czym jest programowanie obiektowe.
Programowanie obiektowe w Pythonie
Pisanie kredą – OOP, programowanie obiektowe large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="leniwy" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Czym jest Self w Pythonie." class="wp-image-206807" width=" 709" height="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" size="(maks.szerokość: 709px) 100vw, 709px">
Programowanie zorientowane obiektowo pomaga programistom modelować rzeczywiste koncepcje i relacje za pomocą klas i obiektów. Powoduje to, że kod jest bardziej ustrukturyzowany, wielokrotnego użytku i skalowalny.
Pomyśl o klasie jako o szablonie do tworzenia obiektów o predefiniowanych właściwościach i metodach. Ponadto obiekt jest instancją klasy, która przechowuje własne wartości atrybutów i ma dostęp do funkcji klasowych.
Te dwie koncepcje są ważnym elementem składowym wielu aplikacji Pythona . Możesz zobaczyć zarówno klasy, jak i obiekty w pracy w tym filmie na temat łatwego tworzenia danych za pomocą Python Faker Library.
Rola samego Pythona
Self
jest odwołaniem do instancji klasy w Pythonie. Umożliwia dostęp i modyfikację atrybutów i metod klasy w jej własnym zakresie.
Oto kilka kluczowych punktów dotyczących używania self
w Pythonie:
Self
nie jest zastrzeżonym słowem kluczowym w składni Pythona . Możesz używać innych nazw do identyfikowania instancji klas, ale self
jest to najczęściej używana i akceptowana konwencja przez programistów Pythona.Self
jest używany jako pierwszy parametr w metodach instancji w celu odniesienia do bieżącej instancji klasy.self
do rozróżnienia atrybutów instancji i zmiennych lokalnych, dzięki czemu Twój kod będzie bardziej czytelny i mniej błędny.self
parametr w __init__()
konstruktorze i wszystkich kolejnych konstruktorach funkcji w swojej klasie. Niezastosowanie się do tego spowoduje, że program wyrzuci plik typeerror
. class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given
Uwaga: Możesz obejść użycie self
parametru w funkcjach, używając funkcji metody statycznej, którą zapewnia Python 3. Omówimy to bardziej szczegółowo w dalszej części.
Praca z samym sobą
Nauka używania self
jest bardzo ważna przy budowaniu klas w Pythonie. W tej sekcji dowiesz się, jak używać self
w różnych scenariuszach podczas pracy z klasami i obiektami.
Inicjowanie obiektów za pomocą „__init__()”
Podczas tworzenia nowej instancji klasy __init__()
wywoływana jest metoda w celu zainicjowania atrybutów obiektu. Metoda __init__()
jest konstruktorem klasy i przyjmuje self
parametr jako pierwszy argument.
Parametr self
jest używany w tej metodzie do kojarzenia atrybutów instancji z podanymi argumentami.
Oto przykład:
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)
W tym przykładzie metoda przyjmuje , i jako parametry podczas inicjalizacji obiektu. Parametr odnosi się do instancji klasy, umożliwiając ustawienie atrybutów i dla konkretnego tworzonego obiektu. init
self
name
age
self
name
age
Korzystanie z własnych metod
Podczas definiowania metod instancji w klasie należy dołączyć self
jako pierwszy parametr. Umożliwia to dostęp do atrybutów instancji i innych metod w klasie.
Rozwińmy poprzedni przykład:
class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()
W tym przykładzie introduce()
metoda zawiera self
jako pierwszy parametr. Umożliwia to dostęp do atrybutów nazwy i wieku obiektu oraz utworzenie spersonalizowanego wprowadzenia.
Podczas wywoływania metody w kodzie nie trzeba
self
jawnie przekazywać parametru. Python zajmuje się tym automatycznie.
Postępując zgodnie z tymi wskazówkami i rozumiejąc cel self
Pythona , początkujący mogą skutecznie pracować z klasami i obiektami. To pozwala im tworzyć dobrze zorganizowany kod, który jest łatwy do odczytania i utrzymania.
Typowe przypadki samodzielnego użycia
Istnieje wiele sposobów użycia słowa kluczowego w kodzie Pythona. Dzięki zrozumieniu tych przypadków użycia będziesz w stanie skutecznie wykorzystywać je w swoich programach. self
self
Przyjrzyjmy się niektórym z nich:
Dostęp do atrybutów klasy
Jednym z podstawowych zastosowań self
jest dostęp do atrybutów instancji w klasie. Atrybuty instancji są specyficzne dla obiektu utworzonego z klasy i przechowują dane obiektu.
Używanie self
pozwala manipulować tymi atrybutami lub uzyskiwać do nich dostęp w ramach metod klasowych. Spójrzmy na przykład:
class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)
W tym przykładzie użyliśmy self
dostępu do atrybutu name obiektu Dog w display_name
metodzie.
Wywoływanie metod klasy
Innym częstym przypadkiem użycia self
jest wywoływanie innych metod klasy z poziomu metody instancji. Pozwala to na ponowne użycie kodu, zmniejszenie złożoności i poprawę czytelności.
Jest to niezbędne do użycia self
w przypadku odwoływania się do innych metod, ponieważ zapewnia wywołanie prawidłowej metody dla określonej instancji. Rozważ następujący przykład:
class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)
W powyższym przykładzie używamy self
do wywołania show_species
metody z poziomu show_info
metody. Dzięki temu możemy wyświetlić gatunek i kolor ptaka w jednym wywołaniu.
Na koniec pamiętaj, aby używać self
podczas uzyskiwania dostępu do atrybutów instancji i wywoływania metod klasy. Gdy zrozumiesz te przypadki użycia, będziesz mógł pisać wydajniejszy i bardziej zorganizowany kod w Pythonie.
Najlepsze praktyki własne
Podczas pracy z self,
istnieją pewne konwencje, których należy przestrzegać, aby uniknąć problemów i błędów w kodzie. Tutaj jest kilka z nich.
Gdzie używać Self
Podczas definiowania metod instancji zawsze używaj self
parametru jako pierwszego parametru. Umożliwia to dostęp i modyfikowanie atrybutów instancji obiektu oraz wywoływanie innych metod instancji w obrębie klasy.
Jest to ważne self
podczas pracy z instancjami obiektów w Pythonie. Użycie go zapewnia spójne zachowanie i pozwala na właściwą enkapsulację obiektu.
Rozważmy na przykład następującą klasę:
class MyClass: def __init__(self, my_var): self.my_var = my_var
Tutaj parametr self jest używany w __init__
metodzie do inicjalizacji my_var
atrybutu instancji obiektu. W ten sposób staje się atrybutem specyficznym dla instancji. my_var
W rezultacie można uzyskać do niego dostęp i modyfikować go za pomocą odniesienia do siebie w innych metodach klasy.
Konwencje nazewnictwa dla siebie
Chociaż self
jest to konwencjonalna nazwa używana dla instancji w Pythonie, technicznie możesz użyć dowolnej nazwy. Jednak zdecydowanie zaleca się trzymanie się używania self dla przejrzystości i spójności z szerszą społecznością Pythona.
Użycie innej nazwy może wprowadzić w błąd osoby czytające i pracujące z Twoim kodem, zwłaszcza jeśli są przyzwyczajone do standardowych konwencji nazewnictwa w bibliotekach Pythona.
Gdzie nie używać Self
Wiemy już, że self
parametr zapewnia dostęp do instancji obiektu. Jednak w niektórych przypadkach niektóre funkcje w klasie mogą nie wymagać dostępu do instancji obiektu.
W tym scenariuszu parametr self nie jest potrzebny. Tak więc Python udostępnia funkcję metody statycznej do obejścia parametru self:
Oto przykład:
class Car: @staticmethod def print_car(): print('Vroom Vroom')
W powyższym przykładzie @staticmethod
dekorator funkcji zastępuje self
wymaganie parametru w metodzie. W ten sposób funkcja będzie nadal działać, nawet jeśli nie zostanie do niej przekazana żadna instancja obiektu.
Wniosek
Podsumowując, parametr self w Pythonie odnosi się do instancji klasy i umożliwia dostęp do jej atrybutów i metod. Jako programista Pythona ważne jest, aby zrozumieć cel self i jego użycie w klasach i obiektach.
Konsekwentne używanie self w kodzie promuje czytelność i łatwość konserwacji, co poprawia ogólną jakość Twojej pracy.
Pamiętaj też, że choć często spotykasz się z terminem "self"
używanym w Pythonie, nie jest to zastrzeżone słowo kluczowe Pythona. Różni się to od języków programowania, takich jak Javascript i Java , gdzie "this"
jest zastrzeżonym słowem kluczowym.
Możesz nazwać pierwszy parametr w metodzie klasy, jak chcesz; „ self
“ to po prostu preferowana konwencja.
Jest pytanie, które zawsze pojawia się wśród programistów Pythona. Czy self jest w rzeczywistości słowem kluczowym w Pythonie?
W przeciwieństwie do innych języków programowania, takich jak C++, gdzie słowo self jest uważane za słowo kluczowe, w Pythonie jest to konwencja, której programiści zwykle przestrzegają. Zasadniczo jest to parametr w definicji metody. Zamiast słowa „ja” możesz jednak użyć dowolnego innego imienia, na przykład inne lub ja lub cokolwiek innego dla pierwszego parametru metody. Innym powodem, dla którego jest to sugerowane przez większość ludzi, jest to, że zwiększa czytelność kodu.
Zobaczmy przykład, aby to zrozumieć:
class myClass: def show(another): print(„inny jest używany zamiast self”)
Jeśli porównasz ten kod z kodem samodzielnego konstruktora klasy Python, zauważysz, że użyliśmy tutaj nazwy innej w miejsce ja. Utwórzmy teraz obiekt tej klasy i zobaczmy wynik:
obiekt = mojaKlasa() obiekt.show()
Widać, że program działa nawet jeśli zamiast zmiennej self użyjemy innej nazwy. Działa dokładnie tak samo, jak zmienna self.
Czym jest self w Pythonie: przykłady z życia wzięte
Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.
Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.
W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.
W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.
Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.
Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.
W tym samouczku omówiono idee materializacji pamięci podręcznych danych oraz ich wpływ na wydajność języka DAX w dostarczaniu wyników.
Jeśli do tej pory nadal korzystasz z programu Excel, jest to najlepszy moment, aby zacząć korzystać z usługi LuckyTemplates na potrzeby raportowania biznesowego.
Co to jest brama LuckyTemplates? Wszystko co musisz wiedzieć