Obiekt ma atrybut JavaScript

| | | | | | |

Atrybuty to wartości lub funkcje powiązane z obiektem, typem danych lub klasą. Jeśli wywołasz atrybut na wartości, której typ danych lub klasa nie obsługuje tego atrybutu, napotkasz AttributeError.

W tym przewodniku wyjaśniono, czym jest AttributeError i co oznacza. Przyjrzymy się przykładowemu błędowi atrybutu Pythona, aby dowiedzieć się, jak naprawić jeden z nich w kodzie.

Co to jest błąd atrybutu Pythona?

Błąd atrybutu Pythona jest generowany podczas próby wywołania atrybutu obiektu, którego typ nie obsługuje tej metody. Na przykład próba użycia metody Pythona append() na ciągu znaków zwraca AttributeError, ponieważ ciągi nie działają nie obsługuje append().

W klasie Pythona można zdefiniować metody i wartości „Ęã” Ęãwspółdzielone przez obiekty tej klasy. Dlatego niektórzy ludzie myślą o klasach jako projektach obiektów.

Wywołanie metody lub klasy to inny sposób na powiedzenie, że odwołujesz się do atrybutu tej klasy. Jeden ze sposobów myślenia o atrybucie jest jak fizyczny atrybut osoby. Niektórzy ludzie mają niebieskie oczy. Niektórzy ludzie mają włosy ufarbowane na różowo. To wszystko są atrybuty.

W klasie Pythona atrybutem może być „eye_color”. Ten atrybut może określać kolor oczu osoby. Atrybutem może być również funkcja. Funkcja o nazwie changeEyeColor () może zmienić wartość „eye_color”.

Typy danych mają atrybuty. Na przykład możesz użyć metody Python join() , aby przekonwertować ciąg na listę. Obiekty łańcuchowe obsługują metodę join().

Jeśli spróbujesz odwołać się do funkcji lub wartości niezwiązanej z obiektem klasy lub typem danych, napotkasz AttributeError.

Przykład błędu atrybutu Pythona

Napiszmy program, który łączy dwie listy butów. sklepy obuwnicze łączą się i chcą skompilować listę wszystkich unikalnych butów, które sprzedają.

Na początek zdefiniujmy zestaw Pythona zawierający buty z pierwszego sklepu, Harrisons Shoes:

Do definiowania zestawu używamy szelek. Następnie definiujemy zestaw z nazwami butów oferowanych przez sklep, który łączy z Harrisons. Ten sklep obuwniczy nazywa się Shoe Emporium:

Ponieważ te dwie kolekcje są kolekcjami, mogą przechowywać tylko unikalne wartości . Oznacza to, że gdy je dodamy, otrzymamy zestaw bez zduplikowanych wartości.

Aby dodać nasze zestawy, użyjemy wbudowanej funkcji o nazwie extend():

extend ()< /em> dodaje wszystkie buty z zestawu „shoe_emporium” do zestawu „harrisons_shoes” . Używamy instrukcji print() . Dzięki temu możemy zobaczyć wszystkie buty w naszym nowym zestawie. Uruchommy nasz kod i zobaczmy, co się stanie:

Nasz kod zwraca AttributeError.

Nasz komunikat o błędzie informuje nas, że nie możemy użyć metody extend() na obiekcie, którego typem danych jest kolekcja. Dzieje się tak, ponieważ extend () jest metodą listy. Nie jest obsługiwany przez zestawy.

Jeśli chcemy połączyć nasze dwa zestawy, musimy użyć znaku plus:

Spowoduje to dodanie zawartości zestawu „shoe_emporium” do zestawu „harrisons_shoes” . Następnie wypisujemy wszystkie wartości w folderze " harrisons_shoes " zdefiniowanym na konsoli. Uruchommy nasz nowy program:

Nasz program zwraca zestaw zawierający wszystkie buty z naszych dwóch oryginalnych zestawów. Chociaż w naszych oryginalnych dwóch zestawach było sześć wartości, teraz jest ich tylko pięć. Dzieje się tak, ponieważ dwa buty były identyczne, a zestawy mogą przechowywać tylko unikalne wartości.

Nasz program zwraca jeden zestaw ze wszystkimi butami z naszych dwóch oryginalnych zestawów, podczas gdy było sześć wartości „Ęã” W naszych oryginalnych dwóch zestawach jest teraz tylko pięć. Dzieje się tak, ponieważ dwa buty były takie same, a zestawy mogą przechowywać tylko unikalne wartości.

Podobne błędy atrybutów do zbadania

Błędy atrybutów są niezwykle powszechne. Mogą wystąpić, gdy próbujesz wywołać atrybuty typów danych i klas, które to robią. nie obsługuje atrybutu, do którego się odnosisz.

Te błędy mogą być również spowodowane literówką podczas odwoływania się do atrybutu. Python zinterpretuje twój kod tak, jak jest. Jeśli popełnisz literówkę, w Pythonie pojawi się, że odwołujesz się do atrybutu, który nie istnieje.

Na przykład przy użyciu Pythona split () dzielenie listy To jest powszechny. Ale split() jest metodą ciągów i dlatego nie można jej użyć do podzielenia listy.

Aby dowiedzieć się więcej, sprawdź następujące błędy:

ul>

  • AttributeError: obiekt `list` nie ma atrybutu `split`
  • AttributeError: obiekt „moduł” nie ma atrybutu „urlopen”
  • Wnioski

    Atrybuty błędów w Pythonie są generowane podczas odwoływania się do nieprawidłowego atrybutu. Aby rozwiązać te błędy, najpierw sprawdź, czy wywoływany atrybut istnieje. Następnie upewnij się, że atrybut jest powiązany z obiektem lub typem danych, z którym pracujesz.

    Jeśli żądany atrybut jest powiązany z typem wbudowanym i nie istnieje, powinieneś poszukać alternatywy . Istnieją alternatywy dla wielu istniejących atrybutów dla jednego typu danych, które można wykorzystać w innym typie danych. Na przykład nie ma metody extend() z zestawami, ale możesz użyć union() do scalania zestawów.

    Aby dowiedz się więcej o pisaniu kodu w Pythonie, przeczytaj nasz Przewodnik po Pythonie .

    Shop

    Learn programming in R: courses

    $

    Best Python online courses for 2022

    $

    Best laptop for Fortnite

    $

    Best laptop for Excel

    $

    Best laptop for Solidworks

    $

    Best laptop for Roblox

    $

    Best computer for crypto mining

    $

    Best laptop for Sims 4

    $

    Latest questions

    NUMPYNUMPY

    psycopg2: insert multiple rows with one query

    12 answers

    NUMPYNUMPY

    How to convert Nonetype to int or string?

    12 answers

    NUMPYNUMPY

    How to specify multiple return types using type-hints

    12 answers

    NUMPYNUMPY

    Javascript Error: IPython is not defined in JupyterLab

    12 answers


    Wiki

    Python OpenCV | cv2.putText () method

    numpy.arctan2 () in Python

    Python | os.path.realpath () method

    Python OpenCV | cv2.circle () method

    Python OpenCV cv2.cvtColor () method

    Python - Move item to the end of the list

    time.perf_counter () function in Python

    Check if one list is a subset of another in Python

    Python os.path.join () method