Hướng dẫn how can you tell if a python object is not none? - Làm thế nào bạn có thể biết nếu một đối tượng python không phải là không có?

Các câu trả lời khác đã cung cấp thông tin tốt, nhưng tôi cảm thấy điều này cần phải được làm rõ.

Không, bạn không bao giờ nên sử dụng:

if A:

Nếu những gì bạn cần kiểm tra là:

if A is not None:

Thứ nhất thường sẽ hoạt động như một sự thay thế cho lần thứ hai nhưng thứ nhất là nguồn khó tìm lỗi chung. Ngay cả khi tất cả những gì bạn đang làm là viết một số mã ném nhanh, bạn không nên cho phép mình có thói quen viết mã lỗi. Huấn luyện ngón tay của bạn và tâm trí của bạn để viết và đọc đúng hình thức dài dòng của bài kiểm tra:

if A is not None: 

Việc sử dụng phổ biến không có là để xác định các giá trị tham số tùy chọn và đưa ra một biến một giá trị bắt đầu mặc định có nghĩa là "chưa có giá trị" và có chức năng một ý nghĩa của "không có giá trị được xử lý". Nếu bạn viết một chức năng như:

def my_func(a_list, obj=None):
    if obj:          # Trying to test if obj was passed
        a_list.append(obj)
    # do something with a_list

Điều này sẽ hoạt động tốt cho nhiều mục đích sử dụng trong thế giới thực như:

my_func(user_names, "bob")

Nhưng nếu bất kỳ điều này xảy ra:

my_func(user_names, "")
my_func(user_names, [])
my_func(user_names, 0)

Sau đó, các đối tượng có độ dài không sẽ không được thêm vào danh sách. Khi mã đầu tiên được viết, bạn có thể biết rằng tên người dùng có độ dài bằng không. Vì vậy, mã ngắn hoạt động tốt. Nhưng sau đó, bạn cố gắng sửa đổi mã để sử dụng một chuỗi trống có nghĩa là một cái gì đó giống như người dùng ẩn danh không có tên và đột nhiên chức năng này ngừng thực hiện những gì nó dự kiến ​​sẽ làm (thêm người dùng chuyển đổi vào danh sách).

Ví dụ: giả sử bạn có logic để xác định khi người dùng được phép đăng nhập bằng văn bản như:

new_user = get_user_name()

if user_list_ok(my_func(current_users, new_user)):
    # user_list_ok() tests that no more than 10 users can
    # log in at the same time, and that no sigle user can
    # can log in more than 3 times at once.

    # This user is allowed to log in!

    log_user_in(new_user)

Điều này bây giờ tạo ra các lỗi tinh tế và phức tạp trong mã của bạn. Người dùng không ngừng của "" sẽ không được thêm vào danh sách cho bài kiểm tra, vì vậy khi hệ thống đã đạt đến giới hạn 10 người dùng, thử nghiệm vẫn cho phép người dùng anonomous đăng nhập, đẩy số người dùng lên 11. Có thể kích hoạt một lỗi ở một phần khác của hệ thống yêu cầu chỉ có 10 người dùng tối đa.

Khi bạn cần kiểm tra "VAR không có giá trị", bạn nên luôn sử dụng thử nghiệm "không phải là không" lâu hơn mặc dù cảm giác xấu xí và dài dòng.

  1. Làm thế nào để
  2. Python làm thế nào
  3. Kiểm tra xem một biến không có trong Python

Được tạo ra: Tháng 9-22, 2021 | Cập nhật: Tháng 10 năm 02, 2021

  1. Sử dụng từ khóa
    if A is not None:
    
    5 để kiểm tra xem một biến là
    if A is not None:
    
    6 trong Python
  2. Sử dụng chức năng
    if A is not None:
    
    7 để kiểm tra xem một biến là
    if A is not None:
    
    6 trong Python
  3. Sử dụng từ điển để kiểm tra xem một biến là
    if A is not None:
    
    6 trong Python
  4. Sử dụng khối
    if A is not None: 
    
    0 và
    if A is not None: 
    
    1 để kiểm tra xem một biến là
    if A is not None:
    
    6 trong Python

Một biến có thể lưu trữ các giá trị khác nhau trong Python. Nó có thể có số nguyên, ký tự, float và các giá trị khác.

if A is not None:
6 là một từ khóa đặc biệt trong Python. Điều đó không có nghĩa là giá trị bằng không, nhưng giá trị là null hoặc không có sẵn.
if A is not None:
6 là một đối tượng đặc biệt. Loại của nó được gọi là
if A is not None: 
5.

Đôi khi chúng ta gặp phải một ngoại lệ rằng một biến là của

if A is not None: 
5. Vì vậy, chúng ta nên biết cách kiểm tra xem một biến có phải là
if A is not None:
6 hay không.

Trong hướng dẫn này, chúng tôi sẽ kiểm tra xem một biến có loại

if A is not None:
6 trong Python hay không.

Sử dụng từ khóa if A is not None: 5 để kiểm tra xem một biến là if A is not None: 6 trong Python

Tuyên bố

def my_func(a_list, obj=None):
    if obj:          # Trying to test if obj was passed
        a_list.append(obj)
    # do something with a_list
1 có thể kiểm tra một điều kiện trong Python. Để kiểm tra xem một biến có phải là
if A is not None:
6 hay không, chúng ta có thể sử dụng từ khóa
if A is not None:
5. Từ khóa này kiểm tra xem hai biến có đề cập đến cùng một đối tượng hay không.

Ví dụ,

a = None
b = 5

if(a is None):
    print("A is None")
    
if(b is not None):
    print("B is not None")

Output:

________số 8

Sử dụng chức năng if A is not None: 7 để kiểm tra xem một biến là if A is not None: 6 trong Python

Hàm

if A is not None:
7 có thể kiểm tra xem một đối tượng có thuộc về một loại nhất định hay không. Chúng ta có thể kiểm tra xem một biến là
if A is not None:
6 bằng cách kiểm tra với
def my_func(a_list, obj=None):
    if obj:          # Trying to test if obj was passed
        a_list.append(obj)
    # do something with a_list
8.

Nó trả về một tuple, có phần tử đầu tiên là biến có giá trị chúng tôi muốn kiểm tra. Phần tử thứ hai là đúng hay sai, cho dù biến phù hợp với loại bắt buộc hay không.

Ví dụ,

a = None
b = 5

print((a, isinstance(a, type(None))))    
print((b, isinstance(b, type(None))))

Output:

if A is not None:
0

Sử dụng từ điển để kiểm tra xem một biến là if A is not None: 6 trong Python

Một từ điển lưu trữ các cặp giá trị khóa trong Python. Chúng ta có thể sử dụng nó để kiểm tra xem một biến có phải là

if A is not None:
6 hay không. Phương pháp này là độc đáo, nhưng nó cung cấp kết quả mong muốn.

Xem mã bên dưới.

if A is not None:
1

Output:

if A is not None:
2

Sử dụng khối if A is not None: 0 và if A is not None: 1 để kiểm tra xem một biến là if A is not None: 6 trong Python

Khối

my_func(user_names, "bob")
4 trợ giúp trong việc xử lý mã có thể tăng ngoại lệ. Như đã thảo luận trước đó, nếu Python phát hiện một biến là
if A is not None:
6 và được vận hành, nó có thể tăng ngoại lệ
if A is not None: 
5.

Chúng tôi có thể làm việc trên mã của mình với biến mà chúng tôi nghi ngờ là

if A is not None:
6 trong khối
if A is not None: 
0 và nếu biến là
if A is not None:
6, thì ngoại lệ sẽ được nâng lên, bị bắt trong khối
my_func(user_names, "")
my_func(user_names, [])
my_func(user_names, 0)
0.

if A is not None:
3

Output:

if A is not None:
4

Bài viết liên quan - Biến Python

  • Chuyển đổi một chuỗi thành tên biến trong Python
  • Kiểm tra loại biến trong Python
  • Sử dụng các biến toàn cầu trên nhiều tệp trong Python
  • Xác định danh sách là biến toàn cầu trong Python
  • Điều gì không có nghĩa là trong Python?

    Nó thường được sử dụng làm giá trị mặc định cho các tham số tùy chọn, như trong: def sort (key = none): Nếu không phải là không: # làm điều gì đó với đối số khác: # Đối số đã bị bỏ qua. Nếu bạn chỉ sử dụng nếu khóa: ở đây, thì một đối số được đánh giá là sai sẽ không được xem xét., as in: def sort(key=None): if key is not None: # do something with the argument else: # argument was omitted. If you only used if key: here, then an argument which evaluated to false would not be considered.

    Làm thế nào để bạn nói sự khác biệt giữa không có và sai trong Python?

    Không có gì so với sai trong Python trong Python, không có gì không liên quan gì đến giá trị boolean sai.Không có trong Python thực sự là một đối tượng được thực hiện bởi lớp nonetype.Sai là một đối tượng Boolean được thực hiện bởi lớp Bool.None has nothing to do with the boolean value False. None in Python is actually an object implemented by NoneType class. False is a boolean object implemented by the bool class.

    Không có đối tượng nào trong Python là gì?

    Từ khóa không được sử dụng để xác định giá trị null hoặc không có giá trị nào cả.Không có gì không giống với 0, sai hoặc một chuỗi trống.Không có loại dữ liệu nào của riêng nó (không phải là) và không có ai có thể là không có.used to define a null value, or no value at all. None is not the same as 0, False, or an empty string. None is a data type of its own (NoneType) and only None can be None.

    Không phải là không đúng trong Python?

    Trong Python không ai là người độc thân.Nó được gọi là null trong các ngôn ngữ khác.Trong nếu không không có:, trình biên dịch giả định rằng không có ai có nghĩa là không trống hoặc không phải và chúng tôi biết câu lệnh IF đánh giá các giá trị không phải là đúng và thực thi chúng.Không có điều gì giống như null trong các ngôn ngữ khác.the compiler assumes that not None means non empty, or non-zero and we know an if statement evaluates non-zero values as True and executes them. None is not the same thing as null in other languages.