Tạo đối tượng trong python

Trong Python, lớp được định nghĩa như là một kiểu dữ liệu mới. Kiểu dữ liệu này được dùng để tạo các đối tượng có kiểu của nó. Mỗi đối tượng được tạo từ lớp sẽ chứa bản sao của chính nó bao gồm các thuộc tính được định nghĩa trong lớp. Các thuộc tính cũng được gọi là các trường và biểu diễn trạng thái của đối tượng. Việc khởi tạo các đối tượng được thực hiện bằng cách sử dụng các hàm tạo và hành vi của các đối tượng được định nghĩa bằng cách sử dụng các phương thức.

1. Tạo lớp [class]

Mỗi một đối tượng bao gồm 2 thành phần chính:

- Các thuộc tính: dùng để chứa các thông tin mô tả các đặc điểm của đối tượng. Ví dụ như một con mèo có những thông tin như mã nhận diện, tên, tuổi, màu lông, giới tính, ... Ta sử dụng các biến để lưu giữ những thông tin này, khi đó các biến được gọi là các thuộc tính hay biến thể hiện của đối tượng.

- Các phương thức: dùng để mô tả các hành vi của đối tượng. Ví dụ như một con mèo có các hành vi như di chuyển, tiếng kêu, săn mồi, ... Ta sử dụng các hàm để mô tả các hành vi này, khi đó các hàm được gọi là các phưng thức.

Để mô tả một nhóm các đối tượng cụ thể như nhóm mèo, nhóm chó, nhóm hổ, ... thì ta khai báo lớp tương ứng.

Việc tạo lớp phải được bắt đầu với từ khóa class và theo sau là tên lớp muốn tạo.

Bên cạnh đó, những quy ước sau đây ta cần phải chú ý khi đặt tên cho lớp:

- Tên lớp nên là một danh từ.

- Thường trong Python tên lớp được đặt với ký tự đầu tiên của mỗi từ là in hoa.

- Tên lớp nên đơn giản, mang tính mô tả, và đầy đủ ý nghĩa.

- Tên lớp không được là một từ khóa nào đó của Python.

- Tên lớp không được bắt đầu là số. Tuy nhiên, có thể bắt đầu với dấu dola [$] hoặc ký tự gạch dưới.

Cú pháp cơ bản để tạo một lớp trong Python là như sau:

class Tên_Lớp> :
  //khai báo các thuộc tính

 

  //định nghĩa các phương thức

Trong đó thân_lớp có thể bao gồm các thành phần như các thuộc tính, phương thức, hàm tạo, các getter và setter.

Ví dụ dưới đây sẽ tạo một lớp có tên Animal bao gồm các thuộc tính và phương thức tương ứng để mô tả cho nhóm đối tượng Động vật nói chung.

Python là một ngôn ngữ lập trình hướng đối tượng

  • 2. Xây dựng lớp [class] trong Python
    1. 2.1. Tham số self của class trong Python
    2. 2.2. Câu lệnh pass với class trong Python
  • 3. Tạo đối tượng [object] trong Python
  • Đây là bài 32/54 bài của series môn học Ngôn ngữ lập trình Python

    1. Python là một ngôn ngữ lập trình hướng đối tượng

    Python là một ngôn ngữ lập trình hướng đối tượng [OOP – object-oriented programming language]. Hầu hết mọi thứ trong Python đều là đối tượng [object] với các thuộc tính [property] và phương thức [method] của riêng đối tượng đó.

    Ví dụ, mọi giá trị dữ liệu trong Python đều được xem là một loại đối tượng [object]. Khi gán một giá trị cho một biến [variable] thì bản chất biến đó sẽ tham chiếu đến một đối tượng lưu trữ giá trị dữ liệu đó.

    Trước khi tìm hiểu về OOP trong Python, các bạn có thể tham khảo trước series bài học Phương pháp lập trình hướng đối tượng. Series bài học này giúp các bạn có tư duy cơ bản về OOP với C++, làm cơ sở để học và hiểu OOP trong các ngôn ngữ khác dễ dàng hơn.

    2. Xây dựng lớp [class] trong Python

    Một lớp [class] là một thiết kế [blueprint] hay mẫu [prototype] cho các đối tượng cùng kiểu. Ví dụ, chúng ta có một lớp Cat chứa tất cả thông tin về một con mèo như tên, màu sắc, cân nặng, hành động bắt chuột,… Một con mèo cụ thể là một đối tượng và sẽ có những thông tin chung của một con mèo nhưng với những giá trị khác nhau.

    Trong Python, chúng ta sử dụng từ khóa class để tạo một lớp [class].

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print["Catch Jerry mouse."]
      def sleep[self]:
        print["Take a nap."]
    

    Trong ví dụ trên, chúng ta định nghĩa một lớp [class] Cat bao gồm các thuộc tính là name, color và các phương thức là catchMouse[]sleep[].

    2.1. Tham số self của class trong Python

    Tham số

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    0 là một tham chiếu đến đối tượng hiện tại của lớp và được sử dụng để truy cập các biến thuộc về lớp đó.

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    

    Không nhất thiết phải đặt tên tham số này là

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    0. Chúng ta có thể đặt bất cứ tên gì mà chúng ta thích. Nhưng Python sẽ mặc định hiểu tham số đầu tiên của bất kỳ hàm nào trong class là tham số
    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    0.

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[abc]:
        print[abc.name, "catches Jerry mouse."]
      def sleep[abc]:
        print[abc.name, "takes a nap."]
    

    2.2. Câu lệnh pass với class trong Python

    Định nghĩa của lớp [class] không được để trống. Nhưng nếu chưa biết các thuộc tính và phương thức của lớp để định nghĩa thì có thể dùng câu lệnh

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    3 trong class để tránh gặp lỗi.

    class Person:
        pass
    

    3. Tạo đối tượng [object] trong Python

    Đối tượng [object] là một thực thể cụ thể của lớp [class]. Chúng ta có thể sử dụng tên của lớp để tạo một đối tượng. Khi một đối tượng được tạo ra thì Python sẽ cấp phát vùng nhớ để lưu trữ đối tượng đó.

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    # create an object of Cat class
    tom = Cat[]
    print[tom.name]
    print[tom.color]
    tom.catchMouse[]
    tom.sleep[]
    
    Kết quả
    Tom
    grey and white
    Tom catches Jerry mouse.
    Tom takes a nap.
    

    Chúng ta có thể xóa một đối tượng với từ khóa del.

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    tom = Cat[]
    print["Before delete tom object:", tom]
    del tom
    print["After delete tom object:", tom]
    Kết quả
    Before delete tom object: 
    Traceback [most recent call last]:
      File "c:\python-examples\example.py", line 14, in 
        print["After delete tom object:", tom]
    NameError: name 'tom' is not defined
    

    Ở bài này, chúng ta đã tìm hiểu cách tạo ra một lớp [class] và một đối tượng [object] trong Python một cách đơn giản nhất. Và trong Python, một lớp [class] lúc nào cũng có một hàm

    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    4 được dựng sẵn [built-in]. Hàm này được gọi là hàm khởi tạo [constructor] của lớp. Trong nhiều trường hợp, chúng ta cần xây dựng lại hàm
    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    4 khi tạo một lớp. Chúng ta sẽ tìm hiểu kỹ về hàm
    class Cat:
      # Properties of Cat class
      name = "Tom"
      color = "grey and white"
      # Methods of Cat class
      def catchMouse[self]:
        print[self.name, "catches Jerry mouse."]
      def sleep[self]:
        print[self.name, "takes a nap."]
    
    4 ở bài Hàm khởi tạo [constructor] của class trong Python.

    Chủ Đề