Một lựa chọn khả thi khác, nhưng nó phụ thuộc vào ý nghĩa của bạn trước đây: Show
output:
Điều này cho phép bạn thậm chí kiểm tra các thuộc tính không có giá trị. Nhưng mà! Hãy cẩn thận, bạn không vô tình khởi tạo và so sánh Update:Do những gì tôi đã cảnh báo trong đoạn trên, có nhiều bản không xác định không bao giờ khớp, gần đây tôi đã sửa đổi một chút mẫu này:
Vì mọi thứ trong Python là một đối tượng và các đối tượng có các thuộc tính (trường và phương thức), nên việc viết các chương trình có thể kiểm tra loại thuộc tính nào mà một đối tượng có. Ví dụ, một chương trình Python có thể mở một ổ cắm trên máy chủ và nó chấp nhận các tập lệnh Python được gửi qua mạng từ máy khách. Khi nhận được tập lệnh mới, chương trình Python phía máy chủ có thể kiểm tra hoặc chính xác hơn các đối tượng, mô-đun và chức năng nội tâm trong tập lệnh mới để quyết định cách thực hiện chức năng, đăng nhập kết quả và các tác vụ hữu ích khác nhau. Hasattr so với Try-ExceptCó hai cách để kiểm tra xem một đối tượng Python có thuộc tính hay không. Cách đầu tiên là gọi hàm tích hợp 2 nếu không. Cách thứ hai là 3 để truy cập một thuộc tính trong một 1 và thực hiện một số chức năng khác nếu một 5 được nâng lên.. And: [Python] >>> thử: ... 'abc'.upper () ... ngoại trừ thuộc tính : .... Sự khác biệt giữa hai phong cách này là gì? 6 thường được gọi là kiểu lập trình Python có tên "Nhìn trước khi bạn nhảy" (LByl) vì bạn kiểm tra xem một đối tượng có thuộc tính hay không trước khi bạn truy cập. Trong khi 7 được gọi là "dễ dàng yêu cầu tha thứ hơn sự cho phép" (EAFP) vì bạn 3 Truy cập thuộc tính trước và yêu cầu tha thứ trong khối 9 thay vì xin phép như 6.Cách nào tốt hơn, sau đó? Chà, cả hai học thuyết đều có những người ủng hộ trung thành và cả hai phong cách dường như rất thành thạo để đối phó với bất kỳ thử thách lập trình trong thế giới thực. Đôi khi, thật hợp lý khi sử dụng LByl nếu bạn muốn đảm bảo một thuộc tính chắc chắn tồn tại và dừng thực thi nếu không. Ví dụ: bạn biết chắc chắn tại một điểm trong chương trình rằng 1 được thông qua sẽ có thuộc tính con trỏ tệp hợp lệ mà mã sau có thể hoạt động. Mặt khác, việc sử dụng EAFP cũng có ý nghĩa nếu bạn biết một thuộc tính có thể không tồn tại tại một số điểm trong quá trình thực hiện chương trình. Ví dụ, một trình phát nhạc không thể đảm bảo tệp MP3 luôn luôn ở cùng một vị trí, bởi vì nó có thể bị xóa, sửa đổi hoặc di chuyển bởi người dùng bất cứ lúc nào. Trong trường hợp này, trình phát nhạc có thể 3 truy cập tệp MP3 trước và thông báo cho người dùng rằng tệp không tồn tại trong khối 9.Hasattr vs __dict__Mặc dù 6 là một hàm tích hợp được thiết kế để kiểm tra xem thuộc tính có tồn tại trong một đối tượng hay không, đôi khi có thể chính xác hơn để kiểm tra undefined 5 của đối tượng cho sự tồn tại của một thuộc tính thay vì thực tế là 6 không quan tâm đến lý do tại sao thuộc tính được gắn vào một đối tượng trong khi bạn có thể muốn biết lý do tại sao một thuộc tính được gắn vào một đối tượng. Ví dụ, một thuộc tính có thể được gắn vào một đối tượng do lớp cha của nó thay vì chính đối tượng.[Python] >>> Lớp A (đối tượng): ... foo = 1 ... >>> Lớp B (a): ... Pass ... >>> B = B () >>> Hasattr ( B, 'foo') Đúng >>> 'foo' trong b .__ dict__ false [/python] Trong mã trước, vì lớp Lời khuyên và đề xuất
Khi bạn đã học cách kiểm tra xem một đối tượng có thuộc tính trong Python không, hãy kiểm tra cách lấy thuộc tính từ một đối tượng. Làm thế nào để bạn kiểm tra xem một đối tượng có thuộc tính trong Python không?Chúng ta có thể sử dụng hàm HasAttr () để tìm nếu một đối tượng Python obj có một thuộc tính hoặc thuộc tính nhất định.Hasattr (obj, 'thuộc tính'): Công ước trong Python là, nếu tài sản có thể ở đó, chỉ cần gọi nó và bắt nó với một khối thử/ngoại trừ.use hasattr() function to find if a python object obj has a certain attribute or property. hasattr(obj, 'attribute'): The convention in python is that, if the property is likely to be there, simply call it and catch it with a try/except block.
Làm thế nào để bạn kiểm tra xem một đối tượng có thuộc tính?Nếu bạn muốn xác định xem một đối tượng nhất định có thuộc tính cụ thể thì phương thức HasAttr () có phải là những gì bạn đang tìm kiếm hay không.Phương thức chấp nhận hai đối số, đối tượng và thuộc tính ở định dạng chuỗi.hasattr() method is what you are looking for. The method accepts two arguments, the object and the attribute in string format.
Làm thế nào để bạn kiểm tra xem một đối tượng không có thuộc tính Python?Giá trị trả về HasAttr () Phương thức HasAttr () trả về: true - Nếu đối tượng có thuộc tính được đặt ra.Sai - Nếu đối tượng không có thuộc tính được đặt tên. Return Value
The hasattr() method returns: True - if object has the given named attribute. False - if object has no given named attribute.
Làm thế nào để bạn kiểm tra giá trị của một đối tượng trong Python?Cách xác định giá trị của một đối tượng trong Python.. Loại (OBJ) Trả về loại đối tượng .. id (obj) trả về id của đối tượng .. |