Seznam je také objekt, který se používá k ukládání prvků různých datových typů. Při používání seznamu v našich programech Python je běžné vidět, že objekt „seznam“ chyby nelze volat. V tomto článku se dozvíme, proč k této chybě dochází a jak ji vyřešit.
Co to znamená, že objekt „seznam“ není v Pythonu volatelný?
The Objekt „seznam“ nelze volat chyba je běžná runtime chyba, se kterou se setkávají vývojáři Pythonu. Dochází k němu, když se pokusíte volat objekt seznamu, jako by to byla funkce. V Pythonu jsou seznamy objekty, které obsahují uspořádanou kolekci položek. Jsou přístupné pomocí indexování nebo dělení, nikoli voláním jako funkce.
Syntax
''list' object is not callable'>
Níže jsou uvedeny důvody, proč v Pythonu nelze volat objekt „list“. Krajta :
dělení řetězců c++
- Název proměnné Konflikty s funkcí.
- Zneužití závorek
- Metoda koliduje s Property.
Název proměnné je v konfliktu s funkcí.
V níže uvedeném kódu je seznam přiřazen jako název proměnné, což je v konfliktu s vestavěnou funkcí seznam() . Chcete-li to vyřešit, přejmenujte proměnnou nebo explicitně přistupujte k funkce list(). z vestavěný modul.
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)>
Výstup
Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 4, in moreNumbers = list(range(10,21)) TypeError: 'list' object is not callable>
Zneužití závorek
V níže uvedeném kódu Nesprávné použití závorek místo hranatých závorek pro indexování seznamu, což způsobuje „ seznam ‘ objekt není volatelná chyba.
Python3 items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items(3))>
Výstup
Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 3, in print(items(3)) TypeError: 'list' object is not callable>
Metoda koliduje s Vlastností.
V níže uvedeném příkladu dochází k chybě kvůli konfliktu názvů mezi metodou známky() a značky vlastností. Zde má třída Student atribut značky, který je zpočátku přiřazen jako seznam obsahující známky studenta. Třída však také definuje metodu, známky() , který vrátí stejný seznam značek.
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())>
Výstup
Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 11, in print(student.marks()) TypeError: 'list' object is not callable>
Řešení pro Objekt „seznam“ Pythonu nelze v Pythonu volat
Níže jsou uvedeny přístupy k řešení objektu „seznam“ Pythonu, který nelze v Pythonu volat
- Správný název proměnné
- Správné použití závorek
- Přejmenovat metodu konfliktu a atribut
Správný název proměnné
já n níže uvedené řešení přejmenujte proměnnou seznam abyste se vyhnuli stínování názvů vestavěných funkcí. Pro přístup k prvkům v seznamu použijte pro indexování místo závorek hranaté závorky. Vytiskněte oba seznamy a zobrazte jejich obsah.
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)>
Výstup
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]>
Správné použití závorek
Pro přístup k položce seznamu vždy používejte hranaté závorky, jak se používá v níže uvedeném kódu.
Python3 items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items[3])>
Výstup
Ruler>
Přejmenovat metodu konfliktu a atribut
Přejmenováním nemovitosti na značky a způsob k tomu get_marks() , odstraníme konflikt pojmenování a zajistíme to student.get_marks() načte seznam značek, aniž by došlo k chybě TypeError.
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())>
Výstup
[95, 67, 81, 64, 87]>