Hướng dẫn python node class - lớp nút python

Mở đầu cho series học lập trình Python nâng cao chúng ta sẽ tìm hiểu về thực hành hướng đối tượng trong Python, ở series này mình sẽ không nhắc nhiều về lý thuyết hướng đối tượng nữa mà nếu bạn nào chưa biết thì có thể tham khảo ở đây.

Như các bạn đã được tìm hiểu thì một đối tượng có thể có một hoặc nhiều class và trong mỗi class thì lại chứa một hoặc nhiều các thuộc tính và các phương thức... Để khai báo một class trong Python thì mọi người sử dụng cú pháp sau:

class className:
    # code

Trong đó,

class Person:
    # code
4 là tên của class mà bạn muốn khai báo.

VD: Mình sẽ khai báo class Person.: Mình sẽ khai báo class Person.

class Person:
    # code

2, Khai báo thuộc tính trong Class.

Như ở trên mình có nói thì một class có thể chứa một hoặc rất nhiều các thuộc tính bên trong. Thuộc tính trong class, cũng tương tự như biến ở trong lập trình hướng thủ tục. Để khai báo một thuộc tính trong class thì mọi người chỉ cần khai báo như khai báo một biến bình thường và lưu ý là nó phải nằm trong phạm vi của class.

VD: Mình sẽ khai báo thêm một số thuộc tính cho class

class Person:
    # code
5 ở trên.: Mình sẽ khai báo thêm một số thuộc tính cho class
class Person:
    # code
5 ở trên.

class Person:
    name = "Vũ Thanh Tài";
    age = 22;
    male = True

3, Khai báo phương thức trong Class.

Phương thức ở trong hướng đối tượng cũng tương tự như hàm ở trong lập trình hướng thủ tục và một class thì có thể không có hoặc có nhiều phương thức. Để khai báo một phương thức trong Python mọi người chỉ cần khai báo như khai báo một hàm bình thường, và lưu ý là phải khai báo trong phạm vi của class.

VD: Mình sẽ khai báo thêm một số phương thức cho class

class Person:
    # code
5 ở trên.: Mình sẽ khai báo thêm một số phương thức cho class
class Person:
    # code
5 ở trên.

class Person:
    # thuộc tính
    name = "Vũ Thanh Tài";
    age = 22;
    male = True
    # phương thức
    def setName(self, name):
        self.name = name
    
    def getName(self):
        return self.name
    
    def setAge(self, age):
        self.age = age
    
    def getAge(self):
        return self.age
    
    def setMale(self, male):
        self.male = male
    
    def getMale(self):
        return self.male

Chú ý:Ở trong ví dụ trên mình có sử dụng từ khóa

class Person:
    # code
7. Thì từ khóa
class Person:
    # code
7 ở đây dùng để thể hiện lại chính class đang chứa nó, và dựa vào nó thì chúng ta có thể truy cập vào các phần tử đang có trong class hiện tại.
:Ở trong ví dụ trên mình có sử dụng từ khóa
class Person:
    # code
7. Thì từ khóa
class Person:
    # code
7 ở đây dùng để thể hiện lại chính class đang chứa nó, và dựa vào nó thì chúng ta có thể truy cập vào các phần tử đang có trong class hiện tại.

4, Khởi tạo class.

Sau khi đã khai báo được class trong Python rồi, thì để khởi tạo nó mọi người sử dụng cú pháp sau:

variableName = className()

Trong đó::

  • class Person:
        # code
    9 là biến mà bạn muốn thể hiện lại đối tượng.
  • class Person:
        # code
    4 là class mà bạn muốn khởi tạo.

VD: Mình sẽ khởi tạo class person ở trên.: Mình sẽ khởi tạo class person ở trên.

person = Person()

 Sau khi đã khởi tạo được class rồi thì biến được instane lại class đó sẽ có thể truy cập được các phần tử được cho phép trong class đó. Bằng cách sử dụng dấu

class Person:
    name = "Vũ Thanh Tài";
    age = 22;
    male = True
1 theo cú pháp sau:

# truy cap den thuoc tinh
object.propertyName

#truy cap den phuong thuc
object.methodName()

Trong đó::

  • class Person:
        # code
    9 là biến mà bạn muốn thể hiện lại đối tượng.
  • class Person:
        # code
    4 là class mà bạn muốn khởi tạo.
  • VD: Mình sẽ khởi tạo class person ở trên.

 Sau khi đã khởi tạo được class rồi thì biến được instane lại class đó sẽ có thể truy cập được các phần tử được cho phép trong class đó. Bằng cách sử dụng dấu

class Person:
    name = "Vũ Thanh Tài";
    age = 22;
    male = True
1 theo cú pháp sau:: Mình sẽ truy xuất đến các thuộc tính và phương thức trong class Person.

# instance
person = Person()
# properties
print(person.name) # Vũ Thanh Tài
print(person.age) # 22
print(person.male) # True
# methods
person.setName("Nguyễn Thị HH")
print(person.getName()) # Nguyễn Thị HH

person.setAge(22)
print(person.getAge()) # 22 

person.setMale(False)
print(person.getMale()) # False

class Person: name = "Vũ Thanh Tài"; age = 22; male = True2 là biến thể hiện lại object.

class Person:
    name = "Vũ Thanh Tài";
    age = 22;
    male = True
3 là tên thuộc tính mà bạn muốn truy xuất.

class Person:
    name = "Vũ Thanh Tài";
    age = 22;
    male = True
4 là tên phương thức mà bạn muốn truy xuất.

VD: Mình sẽ truy xuất đến các thuộc tính và phương thức trong class Person.

 5, Lời kết.

Nội dung chính ShowShow

  • Node: An individual part of a larger data structure
  • Orphaned nodes
  • Null node link
  • Python Node implementation
  • Learn More on Codecademy
  • 1. Linked List là cái gì?
  • Linked List là tập hợp các nodes được liên kết với nhau. Node sau chứa link đến node trước
  • 2. Đặc điểm chính:
  • Ưu điểm:
  • Nhược điểm
  • 3. Thực hiện tạo linked list trên python
  • Đầu tiên ta tạo 1 class nodes trên python:
  • Thử set dữ liệu cho các node bằng tay:
  • Hàm push để thêm dữ liệu cho linked list
  • Thử tạo hàm duyệt các phần tử của linked list:
  • Ngoài ra ta còn có Double Linked List (Danh sách liên kết đôi)
  • 4. Độ phức tạp thuật toán của linked list

Với n là số phần tử của linked: - Thêm một phần tử vào sau danh sách: O(n) do phải duyệt hết các ptử để lấy node ở đuôi - Thêm một phần tử ở đầu danh sách: O(1) - Duyệt qua tất cả các phần tử O(n) - Xóa 1 phần tử: Trường hợp xấu nhất là O(n) và tốt nhất là O(1) ## Tài liệu tham khảo: https://medium.com/@kojinoshiba/data-structures-in-python-series-1-linked-lists-d9f848537b4d

  • All rights reserved

  • Nội dung chính Show
  • Node: An individual part of a larger data structure
  • Orphaned nodes
  • Null node link
  • Python Node implementation
  • Learn More on Codecademy
  • 1. Linked List là cái gì?
  • Linked List là tập hợp các nodes được liên kết với nhau. Node sau chứa link đến node trước
  • 2. Đặc điểm chính:
  • Ưu điểm:
  • Nhược điểm
  • 3. Thực hiện tạo linked list trên python
  • Đầu tiên ta tạo 1 class nodes trên python:
  • Thử set dữ liệu cho các node bằng tay:
  • Hàm push để thêm dữ liệu cho linked list
  • Thử tạo hàm duyệt các phần tử của linked list:

Node: An individual part of a larger data structure

Orphaned nodes

Orphaned nodes

Null node link

Python Node implementation

Learn More on Codecademy

Python Node implementation

Learn More on Codecademy

class Node:

def __init__(self, value, next_node=None):

self.value = value

self.next_node = next_node

def set_next_node(self, next_node):

self.next_node = next_node

def get_next_node(self):

return self.next_node

def get_value(self):

return self.value

Learn More on Codecademy

1. Linked List là cái gì? 2 phút đọc

1. Linked List là cái gì?

2. Đặc điểm chính:

Ưu điểm:

2. Đặc điểm chính:

Ưu điểm:

  • Nhược điểm
  • 3. Thực hiện tạo linked list trên python

  • Đầu tiên ta tạo 1 class nodes trên python:
  • Thử set dữ liệu cho các node bằng tay:

Nhược điểm

  • 3. Thực hiện tạo linked list trên python

3. Thực hiện tạo linked list trên python

Đầu tiên ta tạo 1 class nodes trên python:

class Node:
    def __init__(self,data):
        self.data = data #Đây là dữ liệu mà ta sẽ lưu trữ trong mỗi node
        self.next = None #Đây là con trỏ trỏ đến node tiếp theo trong linked list

Thử set dữ liệu cho các node bằng tay:

class Person:
    # code
0

Hàm push để thêm dữ liệu cho linked list

class Person:
    # code
1

Thử tạo hàm duyệt các phần tử của linked list:

class Person:
    # code
2

Ngoài ra ta còn có Double Linked List (Danh sách liên kết đôi)

class Person:
    # code
3

-> Điểm khác nhau của double linked list và linked list chính là mỗi node của DLL vừa có chứa con trỏ đến node tiếp theo vừa chứa con trỏ đến node trước nó.

4. Độ phức tạp thuật toán của linked list

Với n là số phần tử của linked: - Thêm một phần tử vào sau danh sách: O(n) do phải duyệt hết các ptử để lấy node ở đuôi - Thêm một phần tử ở đầu danh sách: O(1) - Duyệt qua tất cả các phần tử O(n) - Xóa 1 phần tử: Trường hợp xấu nhất là O(n) và tốt nhất là O(1) ## Tài liệu tham khảo: https://medium.com/@kojinoshiba/data-structures-in-python-series-1-linked-lists-d9f848537b4d

Đã đăng ký Bản quyền