Tôi có một đối tượng như bên dưới và tôi chỉ muốn lấy hoặc kiểm tra thuộc tính có thuộc tính mô tả. Tôi có thể lặp lại như bên dưới nhưng không biết cách kiểm tra thuộc tính có thuộc tính mô tả
Public Class Sample
Public Property ID as integer
Public Property Val1 as integer
Public Property Val2 as integer
End Class
For Each prop In obj.GetType[].GetProperties
'//print only property with description attributes
Next
Cảm ơn
Bình luận
Hiển thị nhận xét 0
Bình luận
5. Cần 1600 ký tự còn lại ký tự
▼
- Hiển thị cho tất cả người dùng
- Hiển thị với người đăng gốc & Microsoft
- Người kiểm duyệt có thể xem
- Có thể xem bởi người kiểm duyệt và người đăng gốc
- Khả năng hiển thị nâng cao
tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm [bao gồm cả hình ảnh] với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB
Để kiểm tra xem một phần tử HTML có thuộc tính cụ thể hay không, bạn có thể sử dụng phương thức hasAttribute[]
. Phương thức này trả về true
nếu thuộc tính được chỉ định tồn tại, nếu không thì trả về false
Giả sử bạn có phần tử HTML sau
Example Page
Ví dụ sau kiểm tra xem thuộc tính title
của phần tử neo có tồn tại không
const anchor = document.querySelector['a'];
const isTitle = anchor.hasAttribute['title'];
console.log[isTitle]; // true
Phương thức hasAttribute[]
cũng hoạt động đối với các thuộc tính data-*
của HTML5
Ví dụ sau minh họa cách bạn có thể sử dụng phương pháp hasAttribute[]
để kiểm tra xem phần tử neo có thuộc tính
const anchor = document.querySelector['a'];
const isTitle = anchor.hasAttribute['title'];
console.log[isTitle]; // true
1 hay khôngVì mọi thứ trong Python đều là đối tượng và đối tượng có thuộc tính [trường và phương thức], nên việc viết chương trình có thể kiểm tra loại thuộc tính mà đối tượng có là điều đương nhiên. 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 một 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 là xem xét các đối tượng, mô-đun và hàm trong tập lệnh mới để quyết định cách thực hiện chức năng, ghi lại kết quả và các tác vụ hữu ích khác
hasattr so với. thử ngoại trừ
Có 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 dựng sẵn
Example Page
1, trả về Example Page
2 nếu chuỗi Example Page
3 là tên của một trong các thuộc tính của Example Page
4, Example Page
5 nếu không. Cách thứ hai là để Example Page
6 truy cập một thuộc tính trong một Example Page
4 và thực hiện một số chức năng khác nếu một Example Page
8 đã được nâng lên[python]
>>> hasattr['abc', 'upper']
True
>
True
>>> hasattr['abc', 'convert']
False
[/python]
Và
[python]
>>> thử.
. 'abc'. trên[]
. ngoại trừ AttributeError.
. print["abc khong co thuộc tính 'upper'"]
.
'ABC'
>>> thử.
. 'abc'. convert[]
. ngoại trừ AttributeError.
. print["abc khong co thuộc tính 'convert'"]
.
abc không có thuộc tính 'convert'
[/python]
Sự khác biệt giữa hai phong cách này là gì? . Trong khi
const anchor = document.querySelector['a'];
const isTitle = anchor.hasAttribute['title'];
console.log[isTitle]; // true
0 được gọi là "Dễ xin phép hơn là xin phép" [EAFP] vì bạn truy cập thuộc tính Example Page
6 trước và xin phép sự tha thứ trong khối Example Page
21 thay vì xin phép như Example Page
9Cách nào tốt hơn, sau đó? . Đôi khi, bạn nên sử dụng LBYL nếu bạn muốn đảm bảo rằng một thuộc tính chắc chắn tồn tại và dừng thực thi nếu nó không tồn tại. Ví dụ: bạn biết chắc chắn tại một thời điểm trong chương trình rằng một
Example Page
4 được truyền vào phải có một thuộc tính con trỏ tệp hợp lệ mà mã sau đây có thể hoạt động trên đó. Mặt khác, cũng nên sử dụng EAFP 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ố thời điểm trong quá trình thực thi chương trình. Ví dụ: trình phát nhạc không thể đảm bảo tệp MP3 luôn ở trên đĩa ở cùng một vị trí, vì tệp có thể bị người dùng xóa, sửa đổi hoặc di chuyển bất kỳ lúc nào. Trong trường hợp này, trình phát nhạc có thể Example Page
6 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 Example Page
21hasattr so với __dict__
Mặc dù
Example Page
9 là một chức năng tích hợp được thiết kế để kiểm tra xem một thuộc tính có tồn tại trong một đối tượng hay không, nhưng đôi khi, việc kiểm tra sự tồn tại của một thuộc tính trên Example Page
27 của một đối tượng có thể chính xác hơn do thực tế là Example Page
9 không quan tâm đến lý do tại sao . 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
.
>>> hạng B[A].
. vượt qua
.
>>> b = B[]
>>> hasattr[b, 'foo']
True
>>> 'foo' in b.__dict__
Sai
[/python]
Trong đoạn mã trước, vì lớp
Example Page
29 là lớp con của lớp Example Page
30, lớp Example Page
29 cũng có thuộc tính "foo". Tuy nhiên, vì "foo" được kế thừa từ Example Page
30, nên Example Page
33 không chứa nó. Đôi khi, điều quan trọng là phải biết liệu một thuộc tính đến từ chính lớp của đối tượng hay từ lớp cha của đối tượngMẹo và Gợi ý
9 tuân theo nguyên tắc gõ vịt trong Python.Example Page
Khi tôi thấy một con chim đi như vịt, bơi như vịt và kêu quạc quạc như vịt, tôi gọi con chim đó là vịt.
Vì vậy, hầu hết thời gian bạn muốn sử dụng
9 để kiểm tra xem một thuộc tính có tồn tại trong một đối tượng hay khôngExample Page
0 vàconst anchor = document.querySelector['a']; const isTitle = anchor.hasAttribute['title']; console.log[isTitle]; // true
27 có các trường hợp sử dụng riêng thực sự khá hẹp so vớiExample Page
9. Vì vậy, sẽ rất hữu ích nếu bạn ghi nhớ những trường hợp sử dụng đặc biệt này để bạn có thể nhận ra chúng trong quá trình viết mã và sử dụng các thành ngữ thích hợp cho phù hợpExample Page
Khi bạn đã học cách kiểm tra xem một đối tượng có thuộc tính trong Python hay không, hãy xem cách lấy thuộc tính từ một đối tượng