2009-10-27 33 views

Trả lời

17

Đối python2: basestring là lớp cơ sở cho cả strunicode, trong khi types.StringTypestr. Nếu bạn muốn kiểm tra xem có gì đó là chuỗi không, hãy sử dụng basestring. Nếu bạn muốn kiểm tra xem nội dung nào đó có phải là sự kiện hay không, hãy sử dụng str và quên khoảng types.

10

công cụ này là hoàn toàn khác nhau trong Python3

types không còn StringType
str phải lúc nào cũng unicode
basestring không còn tồn tại

Vì vậy, cố gắng không để rắc thứ mà thông qua mã của bạn quá nhiều nếu bạn có thể cần phải cổng nó

1
>>> import types 
>>> isinstance(u'ciao', types.StringType) 
False 
>>> isinstance(u'ciao', basestring) 
True 
>>> 

Khá khác biệt quan trọng, có vẻ như với tôi ;-).

0

Đối với Python 2.x:

try: 
    basestring  # added in Python 2.3 
except NameError: 
    basestring = (str, unicode) 
... 
if isinstance(foo, basestring): 
    ... 

Tất nhiên điều này có thể không làm việc cho Python 3, nhưng tôi khá chắc chắn bộ chuyển đổi 2to3 sẽ chăm sóc của chủ đề.

Các vấn đề liên quan