logo

Як виправити те, що об’єкт «список» не викликається в Python

Список також є об’єктом, який використовується для зберігання елементів різних типів даних. Під час використання списку в наших програмах на Python зазвичай можна побачити помилку, що об’єкт «список» неможливо викликати. У цій статті ми дізнаємося, чому виникає ця помилка та як її усунути.

Що означає те, що об’єкт «список» не можна викликати в Python?

The об’єкт «список» не можна викликати помилка — типова помилка виконання, з якою стикаються розробники Python. Це відбувається, коли ви намагаєтесь викликати об’єкт списку, ніби це функція. У Python списки — це об’єкти, які містять упорядковану колекцію елементів. Доступ до них здійснюється за допомогою індексування або нарізки, а не шляхом виклику подібних функцій.



Синтаксис

 ''list' object is not callable'>

Нижче наведено причини того, що об’єкт «список» Python неможливо викликати Python :

  • Ім'я змінної Конфлікти з функцією.
  • Неправильне використання круглих дужок
  • Метод конфліктує з Property.

Ім'я змінної конфліктує з функцією.

У наведеному нижче коді список призначено як ім’я змінної, що суперечить вбудованій функції список() . Щоб вирішити цю проблему, перейменуйте змінну або явно перейдіть до функція list(). від вбудований модуль.



ядро java
Python3
# Create a list list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # Create a list of quantity moreNumbers = list(range(10,21)) # Print the list and quantity print(list) print(moreNumbers)>

Вихід

Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 4, in moreNumbers = list(range(10,21)) TypeError: 'list' object is not callable>

Неправильне використання круглих дужок

У наведеному нижче коді неправильне використання круглих дужок замість квадратних дужок для індексування списку, що спричиняє « список «об’єкт не викликається помилкою.

Python3
items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items(3))>

Вихід



Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 3, in print(items(3)) TypeError: 'list' object is not callable>

Метод конфліктує з Property.

У прикладі нижче помилка виникає через конфлікт імен між методами позначки() і знаки власності. Тут клас студента має атрибут marks, який спочатку призначається як список, що містить оцінки студента. Однак клас також визначає метод, позначки() , який повертає той самий список позначок.

Python3
class Student: def __init__(self, name, marks): self.name = name self.marks = marks def marks(self): return self.marks student = Student('Lalit', [95, 67, 81, 64, 87]) # Generates the error print(student.marks())>

Вихід

Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 11, in print(student.marks()) TypeError: 'list' object is not callable>

Рішення для Об’єкт «список» Python не можна викликати в Python

Нижче наведено підходи до розв’язання об’єкта списку Python, який неможливо викликати в Python

  • Правильна назва змінної
  • Правильне використання круглих дужок
  • Перейменуйте метод і атрибут конфлікту

Правильна назва змінної

я У наведеному нижче рішенні перейменуйте змінну список щоб уникнути затінення імен вбудованих функцій. Використовуйте квадратні дужки для індексування замість дужок для доступу до елементів у списку. Роздрукуйте обидва списки, щоб відобразити їхній вміст.

Python3
# Create a list one2nine = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # Create a list of quantity moreNumbers = list(range(10,21)) # Print the list and quantity print(one2nine) print(moreNumbers)>

Вихід
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]>

Правильне використання круглих дужок

Щоб отримати доступ до елемента списку, завжди використовуйте квадратні дужки, як у наведеному нижче коді.

Python3
items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items[3])>

Вихід
Ruler>

Перейменуйте метод і атрибут конфлікту

Перейменувавши властивість на позначки і метод до get_marks() , ми усунемо конфлікт імен, забезпечивши це student.get_marks() отримує список позначок, не зустрічаючи TypeError.

клас проти об'єкта java
Python3
class Student: def __init__(self, name, marks): self.name = name # Change the property name to _marks self._marks = marks # Rename the method to get_marks def get_marks(self): return self._marks student = Student('Lalit', [95, 67, 81, 64, 87]) # Outputs the list of marks print(student.get_marks())>

Вихід
[95, 67, 81, 64, 87]>