Metodas callable () grąžina True, jei perduotas objektas atrodo iškviečiamas. Jei ne, jis grąžina False.
Sintaksė callable()
yra:
iškviečiamas (objektas)
skambinamieji () parametrai
callable()
metodas reikalauja vieno argumento object
.
Grąžinimo vertė iš skambinimo ()
callable()
metodas grąžina:
True
- jei objektas atrodo iškviečiamasFalse
- jei objekto negalima iškviesti.
Svarbu atsiminti, kad net jei callable()
taip ir yra True
, skambutis į objektą vis tiek gali nepavykti.
Tačiau jei callable()
grįšite False
, skambutis į objektą tikrai nepavyks.
1 pavyzdys: Kaip veikia „callable“)?
x = 5 print(callable(x)) def testFunction(): print("Test") y = testFunction print(callable(y))
Rezultatas
Melas, tiesa
Čia objekto x negalima iškviesti. Atrodo, kad objektas y gali būti iškviečiamas (bet gali nebūti iškviestas).
2 pavyzdys: skambinamas objektas
class Foo: def __call__(self): print('Print Something') print(callable(Foo))
Rezultatas
Tiesa
Foo
Klasės egzempliorius atrodo iškviečiamas (ir šiuo atveju yra iškviečiamas).
class Foo: def __call__(self): print('Print Something') InstanceOfFoo = Foo() # Prints 'Print Something' InstanceOfFoo()
3 pavyzdys: Atrodo, kad objektas gali būti iškviečiamas, bet jo negalima iškviesti.
class Foo: def printLine(self): print('Print Something') print(callable(Foo))
Rezultatas
Tiesa
Foo
Klasės egzempliorius atrodo iškviečiamas, tačiau jo negalima iškviesti. Šis kodas sukels klaidą.
class Foo: def printLine(self): print('Print Something') print(callable(Foo)) InstanceOfFoo = Foo() # Raises an Error # 'Foo' object is not callable InstanceOfFoo()
Rezultatas
„True Traceback“ (paskutinis paskutinis skambutis paskutinis): „File“, 10 eilutė, „TypeError“ objekte: „Foo“ negalima iškviesti