Obiekt Python nie jest błędem, który można nazwać

Obiekt Python nie jest błędem, który można nazwać
Obiekt nie jest błąd, który można połączyć, jest powszechny w Pythonie i jest spowodowany, gdy użytkownik próbuje utworzyć zmienną, nazywając ją równą zarezerwowanemu słowowi kluczowe, co powoduje, że program nie rozróżnia nazwy zmiennej a zarezerwowanym słowem kluczowym. Ten post będzie działał jako przewodnik i wyjaśni przyczyny i rozwiązanie błędu „obiekt nie jest możliwy do wywołania” w Python.

Powód 1: Nieprawidłowe nazewnictwo zmiennej w Pythonie

Jak wspomniano powyżej, ten błąd może być spowodowany, gdy użytkownik nazywa zmienną równą zarezerwowanemu słowowi kluczowe i używa tego zarezerwowanego słowa kluczowego w tym samym programie. Przykładem wykazania tego błędu można odtworzyć za pomocą następującego fragmentu kodu:

int = 5
var1 = int (7)
Dla i w zakresie (1, var1):
Drukuj (i * 5)

Po wykonaniu tego kodu wytworzy on:

W tym przykładzie błąd jest spowodowany, ponieważ program próbuje wywołać zmienną stworzoną przez użytkownika „INT” jako funkcja, co nie jest możliwe.

Rozwiązanie: Podaj odpowiednie identyfikatory do zmiennych

Aby rozwiązać ten problem, użytkownik może podać inną nazwę zmiennej w pierwszym wierszu, a właściwym kodem dla tego przykładu jest:

A = 5
var1 = int (7)
Dla i w zakresie (1, var1):
Drukuj (i * 5)

Gdy ten kod zostanie wykonany teraz, da następujący wynik na terminalu:

Jak widać, że program pomyślnie wykonał bez żadnych błędów.

Powód 2: Niepoprawne wywołanie metody importowanego modułu

Ten błąd występuje również, gdy użytkownik nie jest poprawnie używa importu modułu podczas uzyskiwania dostępu do jego metod; Aby to zademonstrować, weź następujący fragment kodu:

Gniazdo importu
var1 = gniazdo (gniazdo.AF_INET, gniazdo.Sock_stream)
Drukuj („Wyjście zmiennej gniazda jest jako:”)
Drukuj (var1)

W tym kodowym fragmencie:

  • Użytkownik zaimportował moduł „gniazdo” do kodu
  • Ten moduł ma metodę o nazwie Socket (), a użytkownik wywołuje go bez wspomnienia o nazwie modułu z operatorem kropkowym

Po wykonaniu tego kodu daje następujący wynik:

Zobaczmy, jak naprawić ten błąd.

Rozwiązanie 1: Użyj nazwy modułu z operatorem kropkowym

Cóż, to rozwiązanie jest dość proste; Podczas wywoływania metody użyj nazwy modułu i uzyskaj dostęp do jej metody po zastosowaniu operatora kropki, tak jak:

Gniazdo importu
var1 = gniazdo.gniazdo (gniazdo.AF_INET, gniazdo.Sock_stream)
Drukuj („Wyjście zmiennej gniazda jest jako:”)
Drukuj (var1)

Tym razem, gdy kod jest wykonywany, daje następujący wynik na terminalu:

Jak widać, program był w stanie wykonać bez żadnych błędów.

Rozwiązanie 2: Zastosowanie podejścia z import

Jeśli nie chcesz ponownie używać nazwy modułu w całym programie, możesz zmienić sposób importowania modułu w swoim programie; I zamiast używać „Moduł importu,„Możesz użyć„Z importu modułu *". To robi, że bezpośrednio dodaje metody modułu do twojego programu.

Dzięki temu rozwiązaniu właściwym kodem jest:

z gniazda importu *
var1 = gniazdo (af_inet, sock_stream)
Drukuj („Wyjście zmiennej gniazda jest jako:”)
Drukuj (var1)

Tym razem, gdy ten kod zostanie wykonany, przyniesie następujący wynik:

Wyjście potwierdza, że ​​błąd z powodzeniem uniknął.

Wniosek

Błąd Pythona „Obiekt nie można nazwać” jest często powodowany przez wywołanie zmiennej jako funkcji/modułu, gdy zmienna ta przechowuje prostą wartość zamiast być metodą. Ponadto, gdy nazwa zmiennej jest ustawiona jako zarezerwowane słowo kluczowe dla wbudowanej metody, a wbudowana metoda jest również używana w tym samym programie, powoduje również ten błąd. Ostatnim powszechnym powodem tego błędu jest nieprawidłowy sposób importowania modułu i wywołania jego metody, co zostało wyjaśnione w tym przewodniku.