Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Lớp trong python

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Lớp trong python



    LỚP TRONG PYTHON

    Trong Python, bạn sử dụng các lớp để mô tả các đối tượng. Hãy nghĩ về aclass như một công cụ bạn sử dụng để tạo cấu trúc dữ liệu của riêng mình, chứa thông tin về điều gì đó; sau đó bạn có thể sử dụng các hàm (phương thức) để thực hiện các thao tác trên dữ liệu mà bạn mô tả . Một lớp mô hình hóa cách một thứ nên được định nghĩa và đại diện cho một ý tưởng hoặc một bản thiết kế để tạo ra các đối tượng trong Python.

    Tạo một Class

    Giả sử bạn muốn tạo một lớp để mô tả một bộ định tuyến, điều đầu tiên bạn phải làm là định nghĩa nó. Trong Python, bạn xác định một lớp bằng cách sử dụng từ khóa lớp, đặt tên cho lớp đó rồi đóng bằng dấu hai chấm. Chúng ta được khuyến nghị viết hoa tên lớp để phân biệt nó với một biến. Đây là ví dụ đơn giản về việc tạo một lớp trong Python:


    >>> class Router:
    Pass

    Để làm cho một lớp hữu ích hơn, bạn có thể thêm một số thuộc tính vào nó. Trong trường hợp của một lớp dùng để mô tả một router, bạn thường có các giá trị mà bạn muốn có khi thực hiện ngay lớp đó. Mỗi bộ định tuyến đều có tên kiểu máy, phiên bản phần mềm và địa chỉ IP để quản lý. Bạn cũng cần phải chuyển một số giá trị để bắt đầu. Giá trị đầu tiên luôn là chính nó. Lý do cho điều này sẽ trở nên hiển nhiên khi bạn khởi tạo lớp: Giá trị tự chuyển theo tên đối tượng mà bạn chọn để khởi tạo lớp. Trong ví dụ sau, đối tượng bạn sẽ tạo là rtr1.
    Code:
    [COLOR=black][COLOR=#404040]class Router: [/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]‘’’Router Class’’’[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]Def __init__(self, model, swversion, ip_add):[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]‘’’initilize value’’’[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]Self.model = model[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]Self.swversion = swversion[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]Self.ip_add = ip_add[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]Rtr1 = Router (‘iosV’, ’15.6.7’, ’10.10.10.1;)[/COLOR][/COLOR]
    Sau khi xác định lớp, bạn thêm một chuỗi để ghi lại lớp đó và sau đó bạn tạo một hàm gọi __init__, đây là một trường hợp đặc biệt được sử dụng để thiết lập lớp. Các hàm nằm trong lớp được gọi là phương thức và trở thành các hành động mà bạn có thể thực hiện trên đối tượng mà bạn đang tạo.

    Để lưu trữ các thuộc tính, bạn ánh xạ tên chính nó và các giá trị chuyển cho nó trở thành các biến bên trong đối tượng, sau đó lưu trữ các giá trị đó dưới dạng thuộc tính. Bit cuối cùng của mã khởi tạo chính đối tượng. Cho đến nay, bạn đã tạo một khuôn mẫu và bằng cách gán dữ liệu cho các biến trong lớp. Bạn có thể truy cập bất kỳ thuộc tính nào được lưu trữ của lớp bằng cách sử dụng dấu chấm.
    Code:
    [COLOR=black][COLOR=#404040]>>>>rtr1.model[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]‘iosV’[/COLOR][/COLOR]
    Khi bạn gọi rtr1.model, trình thông dịch hiển thị giá trị được gán cho mô hình biến trong đối tượng. Bạn cũng có thể tạo thêm các thuộc tính không được xác định trong quá trình khởi tạo, như được hiển thị trong ví dụ này:
    Code:
    [COLOR=black][COLOR=#404040]>>>>rtr1.desc = ‘virtual router’[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]>>>> rtr1.desc[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]‘virtual router’[/COLOR][/COLOR]
    Khi xây dựng một lớp, bạn có thể khởi tạo nhiều đối tượng như bạn muốn bằng cách chỉ cung cấp một biến mới và chuyển qua một số dữ liệu. Dưới đây là ví dụ về cách tạo đối tượng bộ định tuyến thứ hai rtr2:
    Code:
    [COLOR=black][COLOR=#404040]>>>> rtr2 = Router (‘isr4221’, ’16.9.5’, ’10.10.10.5’)[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]>>>> rtr2.model[/COLOR][/COLOR]
    [COLOR=black][COLOR=#404040]‘isr4221’[/COLOR][/COLOR]


    Phương thức

    Phương thức mô tả một đối tượng và cho phép bạn giao tiếp với một đối tượng. Trong phần trước, bạn tạo ra một đối tượng và áp dụng một số thuộc tính cho nó. Một phương pháp cho phép bạn xem chi tiết bị ẩn đi trong một đối tượng mà không cần gõ một loạt các lệnh và sẽ là một phương pháp hữu ích để thêm một class.



    Kế thừa

    Kế thừa trong lớp Python cho phép một lớp con lấy thuộc tính và methods của lớp khác.Trong phần trước, Ví dụ 4-1 tạo một lớp cho router, nhưng còn về switch thì sao? Nếu bạn nhìn vào thuật toán, bạn thấy rằng tất cả các thuộc tính cũng áp dụng cho switch, vậy tại sao không sử dụng lại code đã được viết cho một class switch mới? Khi dùng kế thừa, bạn có thể thay thế các methods và thuộc tính khác nhau. Để thừa kế trong một lớp, bạn tạo ra bạn sẽ tạo ra một class như trước, nhưng trước dấu 2 chấm, bạn thêm các dấu 2 chấm gồm cả lớp mà bạn muốn kéo các thuộc tính và methods. Nó là điều quan trọng là lưu ý rằng lớp cha phải đến trước lớp con trong python.

    Bạn có thể thêm một biến khác có tên là sw1 và lớp Instantiatethe Switch giống như bạn đã làm với lớp Router, bỏ qua các thuộc tính. Nếu bạn tạo một câu lệnh in khác bằng cách sử dụng đối tượng sw1 mới được tạo, bạn sẽ tìm thấy đầu ra được hiển thị trong ví dụ bên dưới.

Working...
X