![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Giới thiệu Python Descriptor
Số trang: 7
Loại file: pdf
Dung lượng: 165.88 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Giới thiệu Các Python descriptors đã được giới thiệu trong Python 2.2, cùng với các lớp kiểu dáng mới, nhưng chúng vẫn chưa được sử dụng rộng rãi. Các Python descriptors là cách để tạo ra các thuộc tính được quản lý. Trong số rất nhiều lợi thế của chúng, các thuộc tính được quản lý đó được sử dụng để bảo vệ một thuộc tính khỏi những thay đổi hoặc để tự động cập nhật các giá trị của một thuộc tính phụ thuộc. Các descriptors làm tăng sự hiểu biết về Python và cải thiện các kỹ năng...
Nội dung trích xuất từ tài liệu:
Giới thiệu Python Descriptor Giới thiệu Python Descriptor Giới thiệuCác Python descriptors đã được giới thiệu trong Python 2.2, cùng với các lớp kiểu dáng mới,nhưng chúng vẫn chưa được sử dụng rộng rãi. Các Python descriptors là cách để tạo ra các thuộctính được quản lý. Trong số rất nhiều lợi thế của chúng, các thuộc tính được quản lý đó được sửdụng để bảo vệ một thuộc tính khỏi những thay đổi hoặc để tự động cập nhật các giá trị của mộtthuộc tính phụ thuộc.Các descriptors làm tăng sự hiểu biết về Python và cải thiện các kỹ năng mã hóa. Bài này giớithiệu giao thức descriptors và trình bày cách tạo và sử dụng các descriptors.Giao thức descriptorsGiao thức descriptors trong Python chỉ đơn giản là một cách để xác định những gì sẽ xảy ra khitham chiếu một thuộc tính trong một mô hình. Nó cho phép một lập trình viên quản lý truy cậpthuộc tính dễ dàng và hiệu quả: set get deleteTrong các ngôn ngữ lập trình khác, các descriptors được gọi là setter và getter, ở đây các hàmpublic được sử dụng để Get (nhận giá trị) và Set (đặt giá trị ) cho một biến private. Python khôngcó một khái niệm về các biến private và có thể coi giao thức descriptors như là một cách củaPython để đạt được điều tương tự.Nhìn chung, một descriptor là một thuộc tính của đối tượng với một hành vi kết buộc, một hànhvi mà việc truy cập thuộc tính của nó bị ghi đè bằng các phương thức trong giao thức descriptors.Các phương thức đó là __get__, __set__ và __delete__. Nếu định nghĩa một phương thức bấtkỳ trong số này cho một đối tượng, người ta nói rằng đó là một descriptor. Hãy xem xét kỹ hơncác phương thức này trong Liệt kê 1.Liệt kê 1. Các phương thức descriptors__get__(self, instance, owner)__set__(self, instance, value)__delete__(self, instance)Ở đây:__get__ truy cập thuộc tính. Nó trả về giá trị của thuộc tính hoặc đưa ra ngoại lệAttributeError nếu không tồn tại thuộc tính được yêu cầu.__set__ được gọi là một phép gán thuộc tính. Không trả về cái gì cả.__delete__ kiểm soát hoạt động xóa. Không trả về cái gì cả.Điều quan trọng cần lưu ý là các descriptors được gán cho một lớp, chứ không gán cho một cáthể của lớp. Việc sửa đổi lớp này sẽ ghi đè lên hoặc xóa chính descriptor đó, chứ không phải kíchhoạt mã của nó.Về đầu trangKhi nào cần các descriptorsHãy xem xét một thuộc tính email. Việc xác minh định dạng email đúng là cần thiết trước khigán một giá trị cho thuộc tính đó. Descriptor này cho phép xử lý địa chỉ email thông qua mộtbiểu thức chính quy và định dạng của nó được xác nhận hợp lệ trước khi gán nó cho một thuộctính.Trong nhiều trường hợp khác, các giao thức descriptors trong Python kiểm soát truy cập đến cácthuộc tính, chẳng hạn như bảo vệ thuộc tính name.Về đầu trangTạo các descriptorsBạn có thể tạo ra một descriptor theo một số cách sau: Tạo một lớp và ghi đè lên bất kỳ các phương thức nào của descriptor: __set__, __ get__ và __delete__. Phương thức này được sử dụng khi cần descriptor giống nhau qua nhiều lớp và các thuộc tính khác nhau, ví dụ, để xác nhận hợp lệ cho kiểu. Sử dụng một kiểu property (đặc tính) là một cách đơn giản hơn và linh hoạt hơn để tạo ra một descriptor. Sử dụng sức mạnh của các bộ trang trí đặc tính, là một tổ hợp của phương thức về kiểu đặc tính và các bộ trang trí của Python.Tất cả các ví dụ dưới đây là giống nhau theo quan điểm hoạt động. Sự khác biệt nằm ở việc thựchiện.Về đầu trangTạo các descriptors bằng cách sử dụng các phương thức lớpLiệt kê 2 cho thấy tính đơn giản của việc kiểm soát gán thuộc tính trong Python.Liệt kê 2. Tạo các descriptors bằng cách sử dụng các phương thức lớpclass Descriptor(object): def __init__(self): self._name = def __get__(self, instance, owner): print Getting: %s % self._name return self._name def __set__(self, instance, name): print Setting: %s % name self._name = name.title() def __delete__(self, instance): print Deleting: %s %self._name del self._nameclass Person(object): name = Descriptor()Hãy sử dụng mã này và xem kết quả ban đầu:>>> user = Person()>>> user.name = john smithSetting: john smith>>> user.nameGetting: John SmithJohn Smith>>> del user.nameDeleting: John SmithMột lớp descriptor được tạo ra bằng cách ghi đè các phương thức __set__(), __get__() và__delete__() của lớp cha mẹ sao cho get sẽ in ra Getting delete sẽ in ra Deleting set sẽ in ra Settingvà thay đổi giá trị thuộc tính thành tiêu đề (viết hoa chữ cái đầu tiên, viết thường các chữ khác)trước khi gán. Việc này rất tiện dụng, chẳng hạn khi lưu và in các tên.Việc chuyển đổi thành chữ hoa cũng có thể được chuyển sang cho phương thức __get__()._value sẽ có giá trị ban đầu và sẽ được chuyển ...
Nội dung trích xuất từ tài liệu:
Giới thiệu Python Descriptor Giới thiệu Python Descriptor Giới thiệuCác Python descriptors đã được giới thiệu trong Python 2.2, cùng với các lớp kiểu dáng mới,nhưng chúng vẫn chưa được sử dụng rộng rãi. Các Python descriptors là cách để tạo ra các thuộctính được quản lý. Trong số rất nhiều lợi thế của chúng, các thuộc tính được quản lý đó được sửdụng để bảo vệ một thuộc tính khỏi những thay đổi hoặc để tự động cập nhật các giá trị của mộtthuộc tính phụ thuộc.Các descriptors làm tăng sự hiểu biết về Python và cải thiện các kỹ năng mã hóa. Bài này giớithiệu giao thức descriptors và trình bày cách tạo và sử dụng các descriptors.Giao thức descriptorsGiao thức descriptors trong Python chỉ đơn giản là một cách để xác định những gì sẽ xảy ra khitham chiếu một thuộc tính trong một mô hình. Nó cho phép một lập trình viên quản lý truy cậpthuộc tính dễ dàng và hiệu quả: set get deleteTrong các ngôn ngữ lập trình khác, các descriptors được gọi là setter và getter, ở đây các hàmpublic được sử dụng để Get (nhận giá trị) và Set (đặt giá trị ) cho một biến private. Python khôngcó một khái niệm về các biến private và có thể coi giao thức descriptors như là một cách củaPython để đạt được điều tương tự.Nhìn chung, một descriptor là một thuộc tính của đối tượng với một hành vi kết buộc, một hànhvi mà việc truy cập thuộc tính của nó bị ghi đè bằng các phương thức trong giao thức descriptors.Các phương thức đó là __get__, __set__ và __delete__. Nếu định nghĩa một phương thức bấtkỳ trong số này cho một đối tượng, người ta nói rằng đó là một descriptor. Hãy xem xét kỹ hơncác phương thức này trong Liệt kê 1.Liệt kê 1. Các phương thức descriptors__get__(self, instance, owner)__set__(self, instance, value)__delete__(self, instance)Ở đây:__get__ truy cập thuộc tính. Nó trả về giá trị của thuộc tính hoặc đưa ra ngoại lệAttributeError nếu không tồn tại thuộc tính được yêu cầu.__set__ được gọi là một phép gán thuộc tính. Không trả về cái gì cả.__delete__ kiểm soát hoạt động xóa. Không trả về cái gì cả.Điều quan trọng cần lưu ý là các descriptors được gán cho một lớp, chứ không gán cho một cáthể của lớp. Việc sửa đổi lớp này sẽ ghi đè lên hoặc xóa chính descriptor đó, chứ không phải kíchhoạt mã của nó.Về đầu trangKhi nào cần các descriptorsHãy xem xét một thuộc tính email. Việc xác minh định dạng email đúng là cần thiết trước khigán một giá trị cho thuộc tính đó. Descriptor này cho phép xử lý địa chỉ email thông qua mộtbiểu thức chính quy và định dạng của nó được xác nhận hợp lệ trước khi gán nó cho một thuộctính.Trong nhiều trường hợp khác, các giao thức descriptors trong Python kiểm soát truy cập đến cácthuộc tính, chẳng hạn như bảo vệ thuộc tính name.Về đầu trangTạo các descriptorsBạn có thể tạo ra một descriptor theo một số cách sau: Tạo một lớp và ghi đè lên bất kỳ các phương thức nào của descriptor: __set__, __ get__ và __delete__. Phương thức này được sử dụng khi cần descriptor giống nhau qua nhiều lớp và các thuộc tính khác nhau, ví dụ, để xác nhận hợp lệ cho kiểu. Sử dụng một kiểu property (đặc tính) là một cách đơn giản hơn và linh hoạt hơn để tạo ra một descriptor. Sử dụng sức mạnh của các bộ trang trí đặc tính, là một tổ hợp của phương thức về kiểu đặc tính và các bộ trang trí của Python.Tất cả các ví dụ dưới đây là giống nhau theo quan điểm hoạt động. Sự khác biệt nằm ở việc thựchiện.Về đầu trangTạo các descriptors bằng cách sử dụng các phương thức lớpLiệt kê 2 cho thấy tính đơn giản của việc kiểm soát gán thuộc tính trong Python.Liệt kê 2. Tạo các descriptors bằng cách sử dụng các phương thức lớpclass Descriptor(object): def __init__(self): self._name = def __get__(self, instance, owner): print Getting: %s % self._name return self._name def __set__(self, instance, name): print Setting: %s % name self._name = name.title() def __delete__(self, instance): print Deleting: %s %self._name del self._nameclass Person(object): name = Descriptor()Hãy sử dụng mã này và xem kết quả ban đầu:>>> user = Person()>>> user.name = john smithSetting: john smith>>> user.nameGetting: John SmithJohn Smith>>> del user.nameDeleting: John SmithMột lớp descriptor được tạo ra bằng cách ghi đè các phương thức __set__(), __get__() và__delete__() của lớp cha mẹ sao cho get sẽ in ra Getting delete sẽ in ra Deleting set sẽ in ra Settingvà thay đổi giá trị thuộc tính thành tiêu đề (viết hoa chữ cái đầu tiên, viết thường các chữ khác)trước khi gán. Việc này rất tiện dụng, chẳng hạn khi lưu và in các tên.Việc chuyển đổi thành chữ hoa cũng có thể được chuyển sang cho phương thức __get__()._value sẽ có giá trị ban đầu và sẽ được chuyển ...
Tìm kiếm theo từ khóa liên quan:
Giới thiệu Python Descriptor thuộc tính quản lý lập trình web hệ quản trị cơ sở dữ liệu lập trình XML cơ sở dữ liệu nâng caoTài liệu liên quan:
-
Giáo án Tin học lớp 12 (Trọn bộ cả năm)
180 trang 279 0 0 -
Thực hiện truy vấn không gian với WebGIS
8 trang 257 0 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 251 0 0 -
69 trang 147 0 0
-
[Thảo luận] Học PHP như thế nào khi bạn chưa biết gì về lập trình?
5 trang 133 0 0 -
161 trang 133 1 0
-
Tiểu luận môn Cơ sở dữ liệu nâng cao: Mã hóa cơ sở dữ liệu Database Encryption
16 trang 124 0 0 -
Bài giảng Lập trình web nâng cao: Chương 8 - Trường ĐH Văn Hiến
36 trang 120 1 0 -
MỘT SỐ ĐIỂM CẦN CHÚ Ý KHI THIẾT KẾ WEB
5 trang 114 0 0 -
GIÁO TRÌNH LẬP TRÌNH WEB_PHẦN 2_BÀI 3
3 trang 104 0 0