Làm thế nào để bạn tạo một biến bằng không có gì trong python?

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

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 Python

Dưới đây là một số thông tin về đối tượng Không có

  • def test():
        pass
    4 không giống với Sai
  • Một chuỗi rỗng không giống như Không có
  • Không có cũng không phải là một số không
  • Mọi so sánh với Không trả về Sai, ngoại trừ so sánh Không với chính nó

Ở đâ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 Python

Trong Python, Không đại diện cho việc không có giá trị

Bạn thường sử dụng Không để

  • Thực hiện so sánh để xem liệu một giá trị có phải là Không có hay không
  • Cung cấp giá trị đối số mặc định trống cho hàm

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ánh

Khô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 định

A 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 found
1

Chức năng này hoạt động sao cho

  • Nếu một tên không được chỉ định, nó sẽ mặc định là Không có. Kết quả là, chức năng không làm gì cả
  • Nếu một tên được chỉ định, hàm sẽ chào người có tên đó

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():
    pass
5 chẳng hạn

Tham số chính là Không theo mặc định

Gỡ lỗi NoneType trong Traceback

Khi viết mã Python, bạn thường vấp phải một lỗi như thế này

None found
2

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 found
3

Thay vì in tên, xảy ra lỗi

None found
4

Đ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 found
5

Bây giờ chức năng hoạt động như chúng ta mong đợi

None found
6

Đâ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 Python

Trong 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():
    pass
6 trong Python REPL

None found
7

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():
    pass
6 và kiểm tra id của chúng

None found
8

đầu ra

None found
9

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ó

None object in Python

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 Python

Hã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():
    pass
0

Ngoài ra, bạn không thể thêm thuộc tính vào đối tượng Không có

def test():
    pass
1

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