Hàm lấy đối tượng, tên của thuộc tính và giá trị mặc định khi thuộc tính không tồn tại trên đối tượng làm tham số
Chúng tôi đã sử dụng
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
6 làm giá trị mặc định khi thuộc tính không tồn tạiBước cuối cùng là sử dụng hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
7 để kiểm tra xem thuộc tính có phải là một phương thức hay khôngHàm có thể gọi được lấy một đối tượng làm đối số và trả về
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
8 nếu đối tượng có vẻ có thể gọi được, nếu không thì trả về class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
9Nếu thuộc tính được chỉ định tồn tại trên đối tượng và thuộc tính có thể gọi được, chúng ta có thể giả định rằng đó là một phương thức một cách an toàn
Ngoài ra, bạn có thể sử dụng hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
0Kiểm tra xem một đối tượng có Phương thức cụ thể hay không bằng cách sử dụng hasattr[] #
Để kiểm tra xem một đối tượng có một phương thức cụ thể hay không
- Sử dụng hàm
0 để kiểm tra xem thuộc tính có tồn tại trên đối tượng khôngclass Cake: best_cake = "Choco Lava" best_flavor = "Vanilla" cost = 2500 cake_object = Cake[] print[hasattr[Cake, 'best_cake']]
- Sử dụng hàm
7 để kiểm tra xem thuộc tính có thể gọi được khôngclass Cake: best_cake = "Choco Lava" best_flavor = "Vanilla" cost = 2500 cake_object = Cake[] print[hasattr[Cake, 'best_cake']]
- Nếu cả hai điều kiện được đáp ứng, đối tượng có phương thức được chỉ định
Hàm hasattr nhận 2 tham số sau
TênMô tảclass Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
32Đối tượng chúng ta muốn kiểm tra sự tồn tại của thuộc tínhclass Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
33Tên của thuộc tính cần kiểm tra trong đối tượngHàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
0 trả về class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
8 nếu chuỗi là tên của một trong các thuộc tính của đối tượng, nếu không thì trả về `False`Chúng tôi đã sử dụng toán tử boolean
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
36, vì vậy để khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
37 chạy cả hai điều kiện phải được đáp ứngĐối tượng phải có thuộc tính được chỉ định và thuộc tính phải có thể gọi được
Nếu bạn sử dụng câu lệnh
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
38, bạn sẽ chỉ kiểm tra xem thuộc tính có tồn tại trên đối tượng hay không, chứ không phải thuộc tính có thể gọi được khôngclass Employee[]:
def __init__[self, first, last]:
self.first = first
self.last = last
def get_name[self]:
return f'{self.first} {self.last}'
emp1 = Employee['bobby', 'hadz']
try:
result = emp1.get_name[]
except AttributeError:
print['The attribute does NOT exist']
Nếu thuộc tính
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
0 không tồn tại trên đối tượng, một class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
70 sẽ được nâng lên và khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
71 sẽ chạyTuy nhiên, thuộc tính có thể tồn tại trên đối tượng và không thể gọi được, trong trường hợp đó,
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
72 được nâng lênHai cách tiếp cận trước đó trực tiếp và rõ ràng hơn và thực hiện tốt hơn việc kiểm tra xem một đối tượng có một phương thức cụ thể hay không
Mỗi lớp có các phương thức và thuộc tính có thể được gọi là thuộc tính. Một đối tượng có thể mang các thuộc tính của một lớp và mỗi đối tượng cũng có thể có thuộc tính của nó. Biết những thuộc tính mà một đối tượng có, là cần thiết
Không thể kiểm tra các thuộc tính trong một đối tượng theo cách thủ công trong các đoạn mã lớn. Bài viết này sẽ chỉ ra các cách khác nhau để kiểm tra các thuộc tính của một đối tượng
Kiểm tra các thuộc tính bằng phương thức class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 trong Python
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
Hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 kiểm tra một đối tượng xem nó có thuộc tính cụ thể hay không. Nếu hàm tìm thấy thuộc tính, nó sẽ trả về class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
3; cú pháp
hasattr[object_name, attribute_name]
Có hai tham số cho chức năng này - tên của
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
5 và class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
6 mà chúng tôi muốn kiểm tra. Hàm cho kết quả là Boolean class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
3 hoặc class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
4 tùy thuộc vào việc nó có tìm thấy thuộc tính hay khôngGiả sử chúng ta có một lớp tên là
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
9. Chúng tôi xác định ba thuộc tính bên trong lớp này - class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
10, class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
11 và class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
12. Sau đó, chúng ta tạo class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
13 làm đối tượng của lớp nàyBây giờ, để kiểm tra xem đối tượng này có thuộc tính
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
10 hay không, chúng ta sử dụng phương thức class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1. Truyền tên của lớp và thuộc tính này làm đối số trong hàm nàyclass Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
đầu ra
Vì thuộc tính
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
10 thuộc về đối tượng, class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
13, nên chúng tôi nhận được kết quả là class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
18Bây giờ hãy xem điều gì sẽ xảy ra nếu chúng ta chuyển
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
19 làm tên thuộc tínhclass Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1đầu ra
Vì thuộc tính
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
19 không tồn tại, nên chúng tôi lấy class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
41 làm đầu raSử dụng hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 với khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
43 trong Python
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
Một cách nữa là sử dụng chức năng
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 là sử dụng nó với khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
45. Hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 trả về class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
3 khi có thuộc tínhDo đó, khối
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
48 thực thi và in ra giá trị của thuộc tính. Nhưng nếu không có thuộc tính, thì giá trị trả về sẽ là class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
4 và khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
30 được thực thiclass Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
4đầu ra
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
3Chúng tôi tìm kiếm thuộc tính bên trong khối
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
48. Vì không có thuộc tính nên hàm trả về class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
4 và nhập khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
30. Bên trong khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
30, chúng tôi chỉ định một câu lệnh in đơn giản được in làm đầu raKiểm tra các thuộc tính bằng hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35 trong Python
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
Hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35 trả về giá trị mặc định khi không có thuộc tính. Hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35 hoạt động giống như hàm trướccú pháp
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
3Hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35 nhận ba đối số - đối tượng, thuộc tính và giá trị mặc định cho các trường hợp khi thuộc tính không tồn tạiGiả sử, chúng ta phải tìm thuộc tính
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
19 cho đối tượng class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
13. Không chỉ định đối số mặc định, hãy sử dụng hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
8đầu ra
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
9Hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35 đưa ra một ngoại lệ ở đâyBây giờ, chúng ta hãy chỉ định một đối số mặc định sẽ được in khi không có thuộc tính. Đối số mặc định này có thể là một thông báo đơn giản
hasattr[object_name, attribute_name]
1đầu ra
Chúng tôi nhận được thông báo từ đối số mặc định thay vì bất kỳ ngoại lệ hoặc lỗi nào
Sử dụng hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
33 với khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
34
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
Có một cách khác để sử dụng hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35. Sử dụng khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
36 để kiểm tra sự hiện diện của một thuộc tính. Ý tưởng là bao gồm chức năng class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35 bên trong khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
38Nếu có thuộc tính, chúng tôi sẽ in giá trị của nó. Nếu không,
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
39 sẽ bị ném. Chúng tôi có thể xử lý ngoại lệ này trong khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
80 và in thông báo lỗi bằng câu lệnh inChúng tôi tìm kiếm thuộc tính
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
19 bên trong khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
38 trong ví dụ này. Chúng tôi không chỉ định đối số mặc định bên trong hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35Đó là bởi vì chúng tôi xử lý lỗi bên trong khối
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
84class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
4đầu ra
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
0Chúng ta không thể sử dụng hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 với khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
36 như hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35. Điều này là do hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 trả về giá trị Boolean chứ không phải ngoại lệđể tóm tắt
Chúng tôi đã thảo luận về việc tìm kiếm nếu một thuộc tính có trong một đối tượng trong Python. Chúng tôi đã sử dụng hai chức năng -
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 và class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35 để đạt được điều nàyChúng ta đã học cách kết hợp hàm
class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
1 với khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
45 và hàm class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
35 với khối class Cake:
best_cake = "Choco Lava"
best_flavor = "Vanilla"
cost = 2500
cake_object = Cake[]
print[hasattr[Cake, 'best_cake']]
94