Kiểm tra xem đối tượng có rỗng Python không

Sử dụng toán tử

const obj = {}
4 để kiểm tra xem một biến có phải là null trong Python hay không, e. g.
const obj = {}
5. Toán tử
const obj = {}
4 trả về
const obj = {}
7 nếu các giá trị ở bên trái và bên phải trỏ đến cùng một đối tượng và nên được sử dụng khi kiểm tra các đơn lẻ như
const obj = {}
8

Lưu ý rằng không có giá trị

const obj = {}
9 trong Python

Đối tượng

const obj = {}
8 đại diện cho sự vắng mặt của một giá trị. Điều này tương đương với
const obj = {}
9 trong các ngôn ngữ khác

Nếu bạn cần kiểm tra xem một biến có tồn tại và đã được khai báo hay chưa, hãy sử dụng khối

console.log(obj === {}) // false
2

try:
    does_this_exist
    print('variable exists')
except NameError:
    print('variable doesnt exist')

Câu lệnh

const obj = {}
40 đầu tiên kiểm tra xem biến có lưu trữ giá trị
const obj = {}
8 hay không và câu lệnh thứ hai - nếu biến không lưu trữ giá trị
const obj = {}
8

Bạn nên sử dụng toán tử

const obj = {}
4 khi cần kiểm tra xem một biến có lưu trữ giá trị
const obj = {}
8 hay không

Khi chúng tôi sử dụng

const obj = {}
4, chúng tôi kiểm tra danh tính của đối tượng

Hướng dẫn kiểu pep 8 đề cập rằng việc so sánh với các đơn lẻ như

const obj = {}
8 phải luôn được thực hiện với
const obj = {}
4 hoặc
const obj = {}
48 và không bao giờ là các toán tử đẳng thức

Sử dụng các toán tử đẳng thức (bằng

const obj = {}
49 và không bằng
const obj = {}
50 ) khi bạn cần kiểm tra xem một giá trị có bằng một giá trị khác hay không, e. g.
const obj = {}
51

Đây là một ví dụ minh họa rõ hơn việc kiểm tra danh tính (

const obj = {}
4) so ​​với kiểm tra sự bình đẳng (
const obj = {}
49)

Ta đã khai báo 2 biến lưu trữ cùng một danh sách

Chúng tôi đặt biến thứ hai thành biến thứ nhất, vì vậy cả hai biến đều trỏ đến cùng một đối tượng

const obj = {}
54 trong bộ nhớ

Bây giờ, hãy tạo một bản sao nông của danh sách và gán nó cho biến thứ hai

Lưu ý rằng việc kiểm tra danh tính không thành công. Mặc dù hai danh sách lưu trữ các giá trị giống nhau, nhưng theo cùng một thứ tự, chúng trỏ đến các vị trí khác nhau trong bộ nhớ (chúng không phải là cùng một đối tượng)

Khi chúng ta sử dụng toán tử bằng kép, Python gọi phương thức

const obj = {}
55 trên đối tượng

Đó là cuộc gọi

const obj = {}
56
const obj = {}
57. Về lý thuyết, phương pháp này có thể được thực hiện theo một cách không thể đoán trước, vì vậy việc kiểm tra
const obj = {}
8 bằng toán tử
const obj = {}
4 sẽ trực tiếp hơn

Bạn có thể sử dụng hàm id() để lấy danh tính của một đối tượng

Hàm trả về một số nguyên, được đảm bảo là duy nhất và không đổi trong suốt thời gian tồn tại của đối tượng

Hàm

const obj = {}
40 trả về địa chỉ của đối tượng trong bộ nhớ trong CPython

Nếu hai biến tham chiếu đến cùng một đối tượng thì hàm

const obj = {}
40 sẽ cho kết quả giống nhau

Truyền giá trị

const obj = {}
8 cho hàm
const obj = {}
40 sẽ luôn trả về cùng một kết quả vì chỉ có một phiên bản của
const obj = {}
8 trong chương trình Python

Bạn cũng có thể xem các ví dụ trực tuyến để kiểm tra tính trung thực

Tuy nhiên, điều này rất khác so với việc kiểm tra rõ ràng xem một biến có lưu trữ giá trị

const obj = {}
8 hay không bởi vì có nhiều giá trị giả khác không phải là
const obj = {}
8

Tất cả các giá trị không trung thực được coi là giả. Các giá trị giả trong Python là

  • hằng số được xác định là sai.
    const obj = {}
    
    8 và
    const obj = {}
    
    48
  • const obj = {}
    
    49 (không) của bất kỳ loại số nào
  • trình tự và bộ sưu tập trống.
    const obj = {}
    
    70 (chuỗi trống),
    const obj = {}
    
    71 (bộ trống),
    const obj = {}
    
    72 (danh sách trống),
    const obj = {}
    
    73 (từ điển trống),
    const obj = {}
    
    74 (bộ trống),
    const obj = {}
    
    75 (phạm vi trống)

Nếu bạn kiểm tra xem một biến có phải là giá trị trung thực hay không, thì bạn đang kiểm tra xem biến đó có phải là bất kỳ giá trị giả nào đã nói ở trên hay không, không chỉ là

const obj = {}
8

Kiểm tra xem đối tượng có trống hay không là một công việc khá đơn giản và phổ biến nhưng có nhiều cách để kiểm tra đối tượng có trống hay không. Vì vậy, trong blog này, tôi đang cố gắng trình bày tất cả các cách tốt nhất để kiểm tra xem đối tượng có trống hay không

Vì vậy, hãy tìm ra cách để thực hiện nó

Ở đây, trước tiên chúng ta tạo một Đối tượng trống bằng cách sử dụng cú pháp ký tự của đối tượng

const obj = {}

Sau khi tạo một đối tượng trống

console.log(obj === {}) // false
0, chúng tôi so sánh nó với một đối tượng trống khác giống như thế này

console.log(obj === {}) // false

Chúng tôi đang nhận được

console.log(obj === {}) // false
1. Sao có thể như thế được???

console.log({} === {}) // false

Điều này bởi vì chúng tôi đang so sánh các tham chiếu, không phải giá trị. Tham chiếu đến các đối tượng này không giống nhau, mặc dù giá trị giống nhau

Vậy làm thế nào chúng ta thực sự có thể kiểm tra xem một đối tượng có rỗng hay không?

Sử dụng đối tượng. chìa khóa

Mục tiêu. keys sẽ trả về một Array chứa tên thuộc tính của đối tượng. Nếu độ dài của mảng là 0, thì chúng ta biết rằng đối tượng trống

function isEmpty(obj) {
    return Object.keys(obj).length === 0;
}

chúng ta cũng có thể kiểm tra điều này bằng cách sử dụng

console.log(obj === {}) // false
0 và
console.log(obj === {}) // false
1

Đây là cách đơn giản nhất để kiểm tra xem một đối tượng có trống không

Sử dụng JSON. xâu chuỗi lại

Nếu chúng ta xâu chuỗi đối tượng và kết quả chỉ là một dấu ngoặc mở và đóng, chúng ta biết đối tượng trống

function isEmptyObject(obj){
    return JSON.stringify(obj) === '{}';
}

Lặp lại các thuộc tính đối tượng với for…in

Câu lệnh

console.log(obj === {}) // false
2 sẽ lặp qua thuộc tính liệt kê được của đối tượng

function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            return false;
    }

    return true;
}

Trong đoạn mã trên, chúng ta sẽ lặp qua các thuộc tính của đối tượng và nếu một đối tượng có ít nhất một thuộc tính, thì nó sẽ đi vào vòng lặp và trả về

console.log(obj === {}) // false
1. Nếu đối tượng không có bất kỳ thuộc tính nào thì nó sẽ trả về
console.log(obj === {}) // false
4

Sử dụng gạch dưới và Lodash

chúng ta cũng có thể kiểm tra bằng dấu gạch dưới. js như thế này

const obj = {}
1

console.log(obj === {}) // false
5 là dấu gạch dưới. js để kiểm tra xem một danh sách, mảng, chuỗi, đối tượng, v.v. có trống hay không. Đầu tiên, nó tìm ra độ dài của đối số đã truyền và sau đó quyết định. Nó trả về true nếu đối số truyền vào trống, tôi. e. , không có bất kỳ phần tử nào trong đó. Nếu không, nó trả về false

Sử dụng jQuery

chúng ta cũng có thể kiểm tra bằng thư viện jQuery như thế này

const obj = {}
3

Cảm ơn đã đọc 😄

Nếu có bất cứ điều gì tôi đã bỏ lỡ, hoặc nếu bạn có cách tốt hơn để làm điều gì đó thì hãy cho tôi biết

Có trống () trong Python không?

empty() trong Python. Mô-đun numpy của Python cung cấp một hàm gọi là numpy. trống() . Hàm này được sử dụng để tạo một mảng mà không khởi tạo các mục nhập của hình dạng và loại đã cho.

Làm cách nào để kiểm tra lệnh trống trong Python?

Sử dụng bool() . Khác nó đánh giá là sai. Vì vậy, chúng tôi sử dụng điều này trong các biểu thức để in kết quả cho sự trống rỗng của một từ điển.