2013-04-05 32 views
5

Ben 2'den 3'e yukarıdaki dönüştürmek nasıl Python'da neden bir hata mesajı alıyorum NoneType 'adını alamıyor?

ImportError: cannot import name NoneType

yılında

import types 
from types import NoneType 

Sonuçlar 2'den 3'e ait bazı kodları dönüştürmeye çalışırken ve aşağıdaki basit komut ediyorum?

+0

Yalnızca bir "NoneType" örneği bulunduğundan, x, None = "isinstance (x, NoneType)" ile tam olarak eşittir. 'None' türüne karşı kontrol ediyorsanız, bir şey yanlıştır. –

+0

@GarethLatty Tuple kullanım durumu için kullanışlıdır. isinstance (json_compatible_basic_type_expected, (int, float, str, NoneType)) – Ekevoo

cevap

8

types modüllerinde artık NoneType referansı yoktur. Kimlik için None ile doğrudan kontrol etmelisiniz, yani obj is None. Eğer gerçekten NoneType gerekirse diğer bir yolu, kullanılarak bunu elde etmek olacaktır:

NoneType = type(None) 

Bu aslında November 28th, 2007 tarihinde kaldırıldı önce types.NoneType önceden tanımlanmış aynısını yoludur.

Bir yan not olarak, from .. import sözdizimini kullanabilmek için bir modül almanız gerekmez; bu nedenle, modül referansını başka bir yerde kullanmıyorsanız, import types hattınızı bırakabilirsiniz.

İlgili konular