Cần giải thích tại sao dùng print với method reverse() lại ra None

  • Sự là em mới học lập trình, nên hỏi câu hơi ngáo bác nào thông não giúp em phát.
  • Em thắc mắc cái cơ chế của bọn iter , vd gọi reverse() hay sort() cho đối tượng item xong nó làm việc thế nào mà cuối cùng số 1 với 2 nó lại khác nhau.
import re
st = "- without,hello,bag,world\nThen, the ? output!!!!? should. be:\nbag,hello,without,world???!!! "
item = [word for word in re.split("[,. \-!?:\n]+",st) if word]

#1
item.reverse()
print(1)
print(item,"\n.\n.")

#2
print(2)
print(item.reverse())

Console

1
['world', 'without', 'hello', 'bag', 'be', 'should', 'output', 'the', 'Then', 'world', 'bag', 'hello', 'without'] 
.
.
2
None

item.reverse() là thủ tục chứ không phải là hàm. Nói 1 cách đơn giản, nó chỉ làm mà không trả về cái gì cả.

2 Likes

à là mấy cái method trong cái class xử lý vòng vèo 1 hồi cuối cùng ko chịu return thì nó thành None thế này hả bác

WTF :expressionless:

quài, đã là thủ tục thì nó chỉ return None thôi. None có nghĩa là “không là cái gì cả”.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?