Hàm print() tích hợp sẵn của Python không trả về bất cứ thứ gì. Đây là sự thật mà có lẽ bạn chưa từng nghĩ đến trước đây Show Bởi vì hàm print() không trả về giá trị, nó sẽ trả về Không Để thấy điều này, bạn có thể in kết quả của lệnh gọi print() print(print("Example")) đầu ra None Thay vì in “Ví dụ”, Không có gì được in là do bản thân print(“Ví dụ”) trả về Không có Sự thật về Không có đối tượng nào trong PythonDưới đây là một số thông tin về đối tượng Không có
Ở đây tôi đang sử dụng Python REPL để xác minh những >>> None is False False >>> None == "" False >>> None == 0 False >>> None == "None" False >>> None == None True Cách sử dụng và xử lý none trong PythonTrong Python, Không đại diện cho việc không có giá trị Bạn thường sử dụng Không để
Bạn cũng thường thấy NoneType trong các thông báo lỗi theo dõi Điều này là do bạn có một giá trị Không mong muốn ở đâu đó trong mã và bạn cố gắng sử dụng nó Không có trong so sánhKhông có gì thường thấy khi so sánh trong Python Để so sánh một đối tượng với Không, hãy sử dụng toán tử định danh is (and is not) Ví dụ number = None name = "Alice" number is None # Returns True name is not None # Returns True Nói chung, để kiểm tra xem một giá trị có phải là Không trong Python hay không, bạn có thể sử dụng câu lệnh if…else Chẳng hạn, hãy kiểm tra xem một biến tên có phải là Không name = None if name is None: print("None found") else: print(name) đầu ra None found Không có tham số mặc địnhA Không có thể được cung cấp làm tham số mặc định cho hàm Điều này có nghĩa là nếu bạn gọi hàm mà không chỉ định tham số Không được sử dụng làm dự phòng Ví dụ: hãy tạo một hàm chỉ chào một người nếu một tên được đưa ra làm đối số None found1 Chức năng này hoạt động sao cho
Không làm tham số mặc định là cách phổ biến để sử dụng Không có trong Python Nếu bạn xem tài liệu chính thức của Python, bạn sẽ thấy Không ai sử dụng cách này trong phương thức def test(): pass5 chẳng hạn Tham số chính là Không theo mặc định Gỡ lỗi NoneType trong TracebackKhi viết mã Python, bạn thường vấp phải một lỗi như thế này None found2 Nếu bạn thấy lỗi này hoặc bất kỳ lỗi nào khác với từ Không có Loại, điều đó có nghĩa là bạn đang sử dụng Không theo cách không thể sử dụng được Nói cách khác, thứ không được cho là Không có lại vô tình là Không có Chẳng hạn, hãy tạo một hàm trả về một danh sách các tên và gọi nó là None found3 Thay vì in tên, xảy ra lỗi None found4 Điều này xảy ra vì chúng ta quên trả lại tên trong hàm give_names() Như bạn đã biết trước đó, khi một hàm không sử dụng từ khóa trả về, hàm Không được trả về tự động Do lỗi nhỏ này, chúng tôi cố gắng lặp lại đối tượng Không có Trong trường hợp này, cách khắc phục rất đơn giản—trả lại tên từ hàm None found5 Bây giờ chức năng hoạt động như chúng ta mong đợi None found6 Đây là một ví dụ về cách theo dõi lỗi với NoneType Bất cứ khi nào bạn thấy lỗi này, điều gì đó tương tự đang xảy ra Không có đối tượng dưới mui xe trong PythonTrong nhiều ngôn ngữ lập trình phổ biến, null chỉ là 0 dưới mui xe Trong Python, điều này không đúng Cũng giống như mọi thứ khác trong Python, Không ai là một đối tượng Điều này rất dễ xác minh bằng cách kiểm tra loại def test(): pass6 trong Python REPL None found7 Loại Không có là Không có Loại. Điều này là do NoneType là lớp cơ sở triển khai đối tượng None Trong Python, Không ai là một đối tượng đơn lẻ Điều này có nghĩa là chỉ có một Không có trong Python theo ý của bạn Bất kể bạn nhìn thấy Không ở đâu, nó luôn giống nhau Không có đối tượng nào Hãy xác minh điều này bằng cách tạo nhiều biến với giá trị là def test(): pass6 và kiểm tra id của chúng None found8 đầu ra None found9 Tất cả các biến trả về cùng một id Điều này xác minh rằng chỉ có một Không có Nói cách khác, các biến n1, n2 và n3 cũng là cùng một đối tượng vì chúng trỏ đến cùng một địa chỉ bộ nhớ Không ai là một hằng số đúng trong PythonHãy đi sâu hơn vào chi tiết của Không Không ai là một đối tượng trong Python. Nhưng nó là một đối tượng đặc biệt mà bạn không thể sửa đổi Hãy xem điều gì sẽ xảy ra nếu bạn cố gắng sửa đổi đối tượng Không có trong Python def test(): pass0 Ngoài ra, bạn không thể thêm thuộc tính vào đối tượng Không có def test(): pass1 Không thể sửa đổi đối tượng Không có, bởi vì nó là một hằng số thực sự trong Python Như đã thảo luận trước đó, điều này có thể gây ra lỗi và lỗi trong mã của bạn. May mắn thay, thông báo lỗi đủ rõ ràng để cho bạn biết chuyện gì đang xảy ra |