вроде читал, там как раз написано, что int возвращается как long. При этом print тоже говорит, что вернулся long… почему же нельзя сравнить long с None?
if not type(c.fetchone()[0]) is None:
даёт ту же ошибку….
Понимаю, что чего-то не понимаю, сделал специально тест:
a = long(10)
print type(a)
print a
if not a is None:
print "yes"
else:
print "no"
print type(c.fetchone()[0])
print c.fetchone()[0]
if not c.fetchone()[0] is NoneType:
age = int(c.fetchone()[0]) + 1
else:
age = 1
ошибка:
<type 'long'>
10
yes
<type 'long'>
Traceback (most recent call last):
...
print c.fetchone()[0]
TypeError: 'NoneType' object is not subscriptable
Как так - тип один и тот же <type ‘long’> , в первом случае всё ОК, во втором - ошибка?
UPD:
уже разобрался.
a = c.fetchone()[0]
if not a is None:
age = a + 1
else:
age = 1
так работает :) понял свою ошибку, спасибо