Seznam je tudi objekt, ki se uporablja za shranjevanje elementov različnih tipov podatkov. Med uporabo seznama v naših programih Python je običajno opaziti napako, da objekta seznama ni mogoče priklicati. V tem članku bomo izvedeli, zakaj pride do te napake in kako jo odpraviti.
Kaj pomeni, da objekt 'seznam' ni priklican v Pythonu?
The objekta »list« ni mogoče priklicati je pogosta napaka med izvajanjem, na katero naletijo razvijalci Pythona. Pojavi se, ko poskušate poklicati predmet seznama, kot da bi bil funkcija. V Pythonu so seznami objekti, ki vsebujejo urejeno zbirko elementov. Do njih se dostopa z indeksiranjem ali rezanjem, ne s klicanjem podobnih funkcij.
kaj je regex java
Sintaksa
''list' object is not callable'>
Spodaj so navedeni razlogi za to, da predmeta Python 'list' ni mogoče priklicati Python :
- Ime spremenljivke Navzkrižje s funkcijo.
- Zloraba oklepajev
- Metoda je v nasprotju z lastnino.
Ime spremenljivke je v sporu s funkcijo.
V spodnji kodi je seznam dodeljen kot ime spremenljivke, kar je v nasprotju z vgrajeno funkcijo seznam() . Če želite to rešiti, preimenujte spremenljivko ali izrecno dostopite do funkcijo list(). Iz vgrajeni modul.
java vrže izjemoPython3
# 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)>
Izhod
Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 4, in moreNumbers = list(range(10,21)) TypeError: 'list' object is not callable>
Zloraba oklepajev
V spodnji kodi zloraba oklepajev namesto oglatih oklepajev za indeksiranje seznama, kar povzroči ' seznam ' objekt ni priklican napaka.
Python3 items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items(3))>
Izhod
Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 3, in print(items(3)) TypeError: 'list' object is not callable>
Metoda je v nasprotju z lastnino.
V spodnjem primeru se napaka pojavi zaradi konflikta poimenovanja med metodama oznake () in lastninske oznake. Tu ima razred Študent atribut ocene, ki je prvotno dodeljen kot seznam, ki vsebuje študentove ocene. Vendar pa razred definira tudi metodo, oznake () , ki vrne isti seznam oznak.
en milijon v številkahPython3
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())>
Izhod
Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 11, in print(student.marks()) TypeError: 'list' object is not callable>
Rešitev za Predmet Python 'seznam' v Pythonu ni mogoče priklicati
Spodaj so pristopi za reševanje Pythonovega 'seznama' predmeta, ki ga v Pythonu ni mogoče priklicati
- Pravilno ime spremenljivke
- Pravilna uporaba oklepajev
- Preimenujte metodo in atribut konflikta
Pravilno ime spremenljivke
jaz n spodnji rešitvi preimenujte spremenljivko seznam da se izognete senčenju imen vgrajenih funkcij. Za dostop do elementov na seznamu uporabite oglate oklepaje za indeksiranje namesto oklepajev. Natisnite oba seznama, da prikažete njuno vsebino.
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)>
Izhod
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]>
Pravilna uporaba oklepajev
Za dostop do elementa seznama vedno uporabite oglate oklepaje, kot je uporabljeno v spodnji kodi.
Python3 items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items[3])>
Izhod
Ruler>
Preimenujte metodo in atribut konflikta
S preimenovanjem nepremičnine v oznake in način za get_marks() , bomo odpravili spor pri poimenovanju in zagotovili, da študent.get_marks() pridobi seznam oznak, ne da bi naletel na 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())>
Izhod
[95, 67, 81, 64, 87]>