Python Hasattr

Python Hasattr
Python to wysoki poziom, zaawansowany, angielski, taki jak składnia, łatwy do nauczenia się języka programowania. Ma różne rodzaje funkcji, metody, głównie wbudowane, a niektóre można zaprojektować w czasie wykonywania. HASATTR () to wbudowana funkcja użyteczności Pythona w skrócie jako „ma atrybut.„Może być używany z klasami zdefiniowanymi przez użytkownika. Określa, czy obiekt ma określony atrybut. Na przykład zwraca true, jeśli określony obiekt ma określony atrybut, podczas gdy zwraca false, jeśli nie ma określonego obiektu. Składnia HASATTR () to HASATTR (Object, Attribute).

HASATTR () jest samą funkcją, „obiekt” odnosi się do wymaganego obiektu, „atrybut” odnosi się do nazwy określonego atrybutu, który należy sprawdzić. Jeśli „obiekt” ma „atrybut”, hasattr () zwróci prawdziwie, zwróci false. Funkcja HASATTR () zapewnia lepszą czytelność w porównaniu z innymi konwencjonalnymi metodami Python stosowanymi do sprawdzenia wartości atrybutu. Pomocne jest również sprawdzanie kluczy, aby zignorować niepotrzebne błędy napotkane podczas sprawdzania nieobecnych kluczy. Za pomocą przykładów dowiemy się, jak zastosować metodę języka Pythona HASATTR (). Będziesz mógł skutecznie użyć funkcji HASATTR () w swoich skryptach do końca tego artykułu. Zacznijmy od podstawowej ilustracji.

Przykład 1:

W pierwszym przykładzie zdefiniujemy prostą klasę, która zawiera nazwę ucznia i klasę, w której studenci studiują. Następnie sprawdzimy atrybuty klasy za pomocą funkcji HASATTR (). Klasa zdefiniowana przez użytkownika jest tworzona o nazwie „uczeń”, pierwszym atrybutem jest „klasa” i ma wartość „5”, podczas gdy drugi atrybut to „nazwa” i ma wartość „Tylor.„Następnym krokiem jest sprawdzenie atrybutów klasy za pomocą funkcji HASATTR (). Najpierw sprawdziliśmy atrybut „Nazwa” klasy, a następnie atrybut „klasy”, a następnie atrybut „Fathername”. Tutaj możesz wyświetlić kod.

Uczeń klasy:
Klasa = 5
Nazwa = „Tylor”
Student = student ()
Drukuj („Nazwa ucznia to:”, Hasattr (student, „Nazwa”))
print („klasa studencka to:”, Hasattr (student, „klasa”))
Drukuj („Student” imienia ojca to: ', Hasattr (student, „Fathername”)))

Wyjście powyższego kodu jest następujące:

Jeśli zauważysz, że pierwsze dwa wyjścia są „prawdziwe.„Natomiast ostatnie wyjście jest„ fałszywe.„Jak omówiono wcześniej, HASSTTR () zwróci„ true ”, jeśli określony obiekt ma określony obiekt. Natomiast zwraca „false”, jeśli określony obiekt nie ma określonego obiektu. Klasa „uczeń” ma dwa atrybuty „klasa”, „nazwa”, podczas gdy nie ma atrybutu „Fathername”, dlatego funkcja HASATTR () zwraca w tym przypadku „false”.

Przykład 2:

Spójrzmy na niektóre skomplikowane, ale ustrukturyzowane programy, aby zapoznać się z funkcją funkcji HASATTR (). Tutaj zdefiniowaliśmy klasę za pomocą funkcji def_init_ (). Klasa ponownie składa się z danych uczniów. Ma dwa atrybuty, „rollno” i „oceny.„Dane są dostarczane obu atrybutom klasy, wywołując nazwę klasy; Student (35, „M”), gdzie „35” jest „Rollno”, a „M” to ocena ucznia. Później dodaliśmy kolejny atrybut w klasie: wiek ucznia. Możemy to osiągnąć, tworząc kolejną instancję klasy o innej określonej nazwie; Na przykład student1 = student () i student1.Wiek = 9. Patrz kod podany poniżej, aby uzyskać jasne zrozumienie programu.

Uczeń klasy:
def __init __ (selff, rollno, oceny):
selff.Rollno = Rollno
selff.oceny = oceny
Disp Display (selff):
Drukuj („Numer rolki to:”, Selff.Rollno)
Drukuj („ocena to:”, Selff.klas)
Student1 = Student (35, „M”)
Student1.Wiek = 9
print (HASATTR (Student1, „Age”))

Wyjście powyższego kodu jest następujące:

Jak widać, funkcja hasattr () zwróciła „true”, ponieważ atrybut „wiek” jest dodawany do klasy w późniejszych krokach.

Przykład 3:

Miejmy analizę wydajności funkcji HASATTR () w porównaniu z instrukcją TRY. W tym przykładzie zobaczymy, który z nich jest lepszy, funkcja HASATTR () lub instrukcja Try of the Python Language. Najpierw zobaczmy kod i dane wyjściowe, a następnie zobaczymy, który jest lepszy od drugiego.

czas importu
Porównanie zajęć:
name = "Hasattribute"
czas = 5
comp = porównanie ()
Starthasattr = czas.czas()
if (HASATTR (comp, „czas”)):
Drukuj („czas tam jest”)
w przeciwnym razie:
Drukuj („Brak czasu”)
print („The Hasattr () poświęcił czas na wykonanie:” + str (czas.czas () - Starthasattr))
starttry = czas.czas()
próbować:
Drukuj (komp.czas)
Drukuj („czas tam jest”)
z wyjątkiem AttributeError:
Drukuj („Brak czasu”)
Drukuj („Instrukcja TRY MIŁO CZASAĆ, aby wykonać:” + Str (czas.time () - starttry))

Jak widać, klasa „porównanie” ma dwa atrybuty, „nazwa” i „czas”.„Po pierwsze, zaimplementowaliśmy funkcję HASATTR (), aby sprawdzić, czy klasa„ porównawcza ”ma atrybut„ czas ”, czy nie. Następnie sprawdziliśmy czas wykonywania zarówno funkcji HASATTR (), jak i wypróbowaliśmy instrukcję za pomocą funkcji Time (). Dane wyjściowe powyższego kodu podano poniżej:

Zauważ, że HASATTR () zwrócił „false”, ale klasa „porównanie” ma atrybut „czas.„Kluczowym punktem, do którego należy zauważyć, jest to, że zdaliśmy„ czas ”w HASATTR (), podczas gdy klasa„ Porównanie ”ma atrybut„ czas ”. Python jest językiem wrażliwym na przypadki, więc „czas” i „czas” to dwa różne atrybuty. Ponadto, jeśli zobaczysz czas wykonania, zauważysz, że instrukcja TRY jest szybsza niż funkcja HASATTR (). Jednak funkcja HASATTR () zapewnia lepszą czytelność, dlatego HASATTR () jest nadal preferowana przez instrukcję TRY.

Wniosek:

W tym artykule dowiedzieliśmy się o wbudowanej funkcji Python Hasattr (). Za pomocą prostych i złożonych przykładów nauczyliśmy się wdrażać funkcję HASATTR () w naszych programach. Ponadto porównaliśmy czas wykonywania HASATTR () z instrukcją TRY, która udowodniła, że ​​chociaż instrukcja TRY jest szybka, funkcja HASATTR () jest preferowana ze względu na jego zwiększoną czytelność.