2012-07-31 35 views
8

Jak mogę użyć negatywnej formy isinstance() w Pythonie?Ujemna forma isinstance() w Pythonie

Normalnie negacja będzie działać coś

x != 1 

if x not in y 

if not a 

po prostu nie widzieli przykład z isinstance(), więc chciałbym wiedzieć, czy istnieje prawidłowy sposób stosować negację z isinstance().

+7

Więc nie masz na myśli 'not isinstance (...)'? – jmetz

+2

, więc musisz nauczyć się używać 'not' dla każdej konstrukcji pytona? – JBernardo

+2

ow lekcji dowiedziałem się. – mrl

Odpowiedz

18

Wystarczy użyć not. isinstance po prostu zwraca bool, który można not jak każdy inny.

6

To wydaje się dziwne, ale:

if not isinstance(...): 
    ... 

isinstance Funkcja zwraca wartość logiczną. Oznacza to, że można go negować (lub wykonywać dowolne inne operacje logiczne, takie jak or lub and).

przykład:

>>> a="str" 
>>> isinstance(a, str) 
True 
>>> not isinstance(a, str) 
False 
3

Wystarczy użyć not np

if not isinstance(someVariable, str): 
    .... 

jesteś po prostu negując wartość "prawda" (tj Boolean), które isinstance wraca.