Các đối tượng Python có danh tính, hành vi và trạng thái. Các giá trị thuộc tính của một đối tượng xác định trạng thái của nó. Hành vi được xác định bởi mục đích của đối tượng và danh tính được xác định bởi [các] tham chiếu của nó
Hàm hasattr[] trong Python được sử dụng để kiểm tra sự hiện diện của một thuộc tính trong một Lớp. Nói cách khác, phương thức hasattr[] trả về True nếu một đối tượng có thuộc tính được đặt tên đã cho và Sai nếu không. Hàm hasattr[] hoạt động để kiểm tra sự hiện diện của một phương thức có tên cụ thể trên bất kỳ đối tượng nào
Khi chúng tôi đang viết mã liên quan đến việc gõ vịt, hàm hasattr[] rất hữu ích
Cú pháp của Hàm hasattr[] trong Python
Hàm hasattr[] được tích hợp sẵn trong Python, do đó không yêu cầu bất kỳ thao tác nhập hoặc cài đặt nào. Dưới đây là cú pháp của hàm hasattr[]
Hàm hasattr[] trong Python nhận hai tham số, đối tượng và tên thuộc tính. Hãy để chúng tôi thảo luận ngắn gọn về họ
Các tham số của hàm hasattr[] trong Python
Hàm hasattr[] trong Python nhận hai tham số bắt buộc. Chúng như sau
- mục tiêu. Nó là một tham số bắt buộc và nó là đối tượng có thuộc tính sẽ được kiểm tra bằng cách sử dụng Hàm hasattr[] của Python
- Tên. Tên cũng là một tham số bắt buộc và đó là tên của thuộc tính sẽ được tìm kiếm bằng Hàm hasattr[] của Python. Nó phải là kiểu chuỗi
Giá trị trả về của Hàm hasattr[] trong Python
Hàm hasattr[] trong Python trả về các giá trị boolean [True hoặc False], tùy thuộc vào việc một điều kiện nhất định có được đáp ứng hay không. Hãy để chúng tôi thảo luận về chúng dưới đây
- ĐÚNG VẬY. Hàm hasattr[] trong Python trả về True nếu đối tượng được truyền dưới dạng tham số chứa tên được truyền cho hàm hasattr[]. Nói một cách đơn giản, nó trả về True nếu lớp chứa thuộc tính được đặt tên đã cho
- sai. Hàm hasattr[] trong Python trả về giá trị Sai nếu đối tượng được truyền dưới dạng tham số không chứa tên được truyền cho hàm hasattr[]. Nói một cách đơn giản, nó trả về Sai nếu lớp không chứa thuộc tính được đặt tên đã cho
Ngoại lệ của hàm hasattr[] trong Python
Nói chung, Hàm hasattr[] trong Python không đưa ra bất kỳ ngoại lệ nào nếu chúng ta xử lý rõ ràng tất cả các trường hợp cạnh và kiểm tra xem chuỗi [hoặc tên] được truyền cho Hàm hasattr[] trong Python có tồn tại trong mã của chúng ta hay không
Tuy nhiên, đôi khi, chúng ta có thể chuyển một thứ khác vào hàm hasattr[] thay vì một chuỗi, đó là tên thuộc tính [giả sử bất kỳ thuộc tính nào hoặc thứ gì khác], trong những trường hợp đó, nó có thể gây ra AttributeError. Điều này là do Hàm hasattr[] trong Python mong đợi một chuỗi làm tham số thứ hai của nó
Chúng ta hãy xem ví dụ dưới đây để chứng minh điều này
Mã số
________0_____đầu ra
________một_______Giải trình. Trong đoạn mã trên, chúng ta có một lớp tên là lớp Sinh viên. Bên trong lớp đó, chúng ta đã định nghĩa một phương thức - def name[self, name]. Bây giờ, sử dụng hàm hasattr[] đó, chúng ta thử kiểm tra xem thuộc tính 'tên' có xuất hiện trong lớp của chúng ta hay không. Hàm hasattr[] của chúng tôi trả về True trong trường hợp này vì thuộc tính 'name' có trong lớp của chúng tôi. Bây giờ, tương tự, chúng tôi kiểm tra 'tuổi' và nó trả về Sai vì không có thuộc tính nào có tên 'tuổi' trong lớp Sinh viên của chúng tôi
Sau đó, chúng tôi cố gắng chuyển một công việc có giá trị không phải chuỗi cho lớp của mình và hàm hasattr của chúng tôi trả về NameError. tên 'công việc' không được xác định vì 'công việc' chúng tôi đã chuyển cho nó không phải là một chuỗi. Do đó, trong trường hợp này, chúng ta có thể rơi vào bẫy ngoại lệ trong hàm hasattr[]. Và cuối cùng, nhận được AttributeError
Các ví dụ về hàm hasattr[] trong Python
Bây giờ chúng ta đã trình bày chi tiết về Hàm hasattr[] của Python, đã đến lúc chúng ta xem xét một số mã và làm cho các khái niệm của chúng ta cụ thể hơn. Vì vậy, hãy để chúng tôi trình bày tất cả các ví dụ mã của Hàm hasattr[] trong Python
ví dụ 1. Khi đối tượng của lớp có thuộc tính
Chúng ta hãy lấy một kịch bản trong đó lớp của chúng ta có thuộc tính và Hàm hasattr[] trong Python của chúng ta trả về True khi đối tượng của lớp và tên thuộc tính được truyền cho hàm. Hãy để chúng tôi nhìn vào mã cho cùng
Mã số
# python program to demonstrate the # usage of the hasattr[] # function in python class Book: # function that takes the name of the book and returns it def title[self, bookname]: print[f"The name of the book is = {bookname}"] # function that takes the number of pages # of the book and returns it def numPages[self, pages]: print[f"The number of pages in the book is = {pages}"] # object of the class Book ob = Book[] # checking if the "name" attribute is present in ob or not # it will return a True because "name" is present print["Is the attribute 'title' present in the book? ", hasattr[ob, "title"]] # checking if the "age" attribute is present in ob or not # it will return a False because "age" is not present print["Is the attribute 'numPages' present in the book?", hasattr[ob, "numPages"]] # checking if job attribute is present in ob or not # it will return an exception because the job is not a string print["Is the attribute 'author' present in the book?", hasattr[ob, "author"]]
đầu ra
________3______Giải trình
Trong đoạn mã trên, chúng ta có một lớp tên là Sách, lớp Sách. Bên trong lớp, chúng ta đã định nghĩa hai phương thức là title và numPages. Sau đó, chúng tôi đã viết hàm hasattr[] để kiểm tra xem thuộc tính đã truyền có hay không có trong đối tượng của lớp đã cho. Vì thuộc tính tên[chuỗi] - 'tiêu đề' và 'numPages' đã có mặt trong đối tượng của chúng ta, nên hàm hasattr trả về giá trị True. Tuy nhiên, vì 'tác giả' không có mặt trong đối tượng đã cho, nên hàm hasattr[] của chúng tôi đã trả về Sai
ví dụ 2. Khi Đối tượng của Lớp không có Thuộc tính
Chúng ta hãy lấy một kịch bản trong đó lớp không có thuộc tính và Hàm hasattr[] Python của chúng ta trả về Sai khi đối tượng của lớp và tên thuộc tính được truyền cho hàm. Hãy để chúng tôi nhìn vào mã cho cùng
Mã số
________4______đầu ra
________5_____ Giải trình. Trong đoạn mã trên, chúng ta có một lớp tên là Hello. Bên trong lớp, chúng tôi đã xác định hai phương thức, cụ thể là tên và tuổi. Sau đó, chúng tôi đã viết hàm hasattr[] để kiểm tra xem thuộc tính đã truyền có hay không có trong đối tượng của lớp đã cho. Vì thuộc tính có tên 'height' không có trong lớp đã cho Xin chào, nên hàm hasattr[] của chúng tôi đã trả về Sai
ví dụ 3. Kiểm tra thuộc tính lớp của lớp với getattr
Bây giờ chúng ta hãy lấy một ví dụ, nơi chúng ta sẽ kiểm tra xem có bất kỳ thuộc tính lớp nào hay không, bằng cách sử dụng phương thức getattr. Hãy để chúng tôi nhìn vào mã cho cùng
Mã số
________6______đầu ra
________7_____Giải trình. Trong đoạn mã trên, chúng ta có một lớp tên là School. Bên trong lớp, chúng tôi đã xác định ba thuộc tính lớp, cụ thể là tên, vị trí và trang web. Sau đó, chúng tôi đã sử dụng hàm hasattr[] để kiểm tra xem thuộc tính đã truyền có hay không có trong đối tượng của lớp đã cho. Vì thuộc tính tên[chuỗi] - 'tên' và 'vị trí' và 'trang web' đã có mặt trong lớp của chúng ta, nên hàm hasattr[] đã trả về giá trị True
Tuy nhiên, vì bảng không có mặt trong lớp đã cho, nên hàm hasattr[] của chúng tôi đã trả về Sai
Hàm hasattr[] của Python có thể được sử dụng để xác minh các khóa, nhằm tránh nhầm lẫn khi cố gắng truy cập các khóa bị thiếu. Hàm hasattr[] đôi khi cũng bị xâu chuỗi để ngăn việc nhập một thuộc tính được liên kết nếu thuộc tính kia không có
Bây giờ bạn đã có một ý tưởng rõ ràng và sắc nét về “Hàm hasattr[] của Python”, tôi khuyến khích bạn tiếp tục và chọn bất kỳ bài viết nào về chủ đề chia tỷ lệ dưới đây để nâng cao hơn nữa kiến thức của bạn về Python –