2013-06-01 29 views
5

Tôi đang sử dụng một cá thể lớp trả về một chuỗi.Tại sao chuỗi được trả về từ một cá thể lớp giữ loại NoneType mặc dù IDLE nói đó là một chuỗi?

Tôi đang gọi hai lần trường hợp này và thu thập các giá trị trả về vào danh sách. Sau đó, tôi đang cố gắng sử dụng .sort() để sắp xếp hai chuỗi này. Tuy nhiên, khi tôi làm như vậy nó ném một lỗi nói rằng loại là (Nonetype - coi nó là đối tượng).

Tôi đã kiểm tra với loại (phần tử của danh sách) và nó trả về loại "chuỗi". Tôi không biết đầu mối gì đang diễn ra. Về cơ bản trong nhàn rỗi nó nói rằng tôi có dây trong một danh sách .. nhưng khi chạy nó ném một lỗi nói rằng NoneType (danh sách các chuỗi) không thể lặp lại.

đây là một ví dụ:

list_of_strings = [class_method(args), class_method(another_args)] ## this instance returns string 

print type(list_of_strings[0]) #prints type 'str' 

LỖI:

list_sorted = list(list_of_strings.sort()) 
TypeError: 'NoneType' object is not iterable 

Cảm ơn rất nhiều!

George

Trả lời

3

Từ trăn documentation:

7. The sort() and reverse() methods modify the list in place for economy of space when sorting or reversing a large list. To remind you that they operate by side effect, they don’t return the sorted or reversed list.

Sử dụng sorted():

list_sorted = list(sorted(list_of_strings)) 
+0

Cảm ơn Elaszar! Nó đã làm việc. George – GeorgeG

0

Bạn nên sử dụng sorted():

list_sorted = list(sorted(list_of_strings)) 

Bạn hiện đang gọi số list() vào số None là kết quả của cuộc gọi .sort().

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