Chủ Nhật, 19 tháng 5, 2024

36. Lớp và đối tượng trong Python

Xe là một lớp (Class), Chó là một lớp...Honda, Ford, Toyota...là những đối tượng (Object) của lớp Xe. Chó Phú Quốc, chó Bulldog, chó German Shepherd...là các đối tượng của lớp Chó.

Đối tượng (Object) là thể hiện của một lớp (Class). Quá trình tạo một đối tượng có thể được gọi là khởi tạo.

Trong bài này, chúng ta sẽ thảo luận về việc tạo các lớp và đối tượng trong python. Chúng ta cũng sẽ nói về cách một thuộc tính được truy cập bằng cách sử dụng đối tượng lớp.

Trong python, một lớp có thể được tạo bằng cách sử dụng từ khóa class theo sau là tên lớp. Cú pháp để tạo một lớp được đưa ra dưới đây.

Cú pháp

class ClassName:
    # các lệnh

Chúng ta sẽ tạo một lớp (Class) rất đơn giản tên là MyClass


class MyClass:
  loichao ="Dat Viet Lap Trinh"

 

Sử dụng IDE Online để chạy chương trình

 



Trước khi bàn tới những thứ "lớn lao" thì chúng ta cần nhìn thấy "kết quả", vì vậy chúng ta sẽ tạo một đối tượng (Object), ví dụ tên là p như sau


class MyClass:
  loichao ="Dat Viet Lap Trinh"
 
p = MyClass()


Chạy chương trình


 

Bây giờ chúng ta cần nhìn thấy "kết quả" thật sự


class MyClass:
  loichao ="Dat Viet Lap Trinh"
 
p = MyClass()
print(p.loichao)


Chạy chương trình


Thật ra nếu cứng nhắc theo những định nghĩa về lớp và đối tượng chúng ta sẽ rất khó nắm bắt.

Mọi thứ chung quanh ta có thể coi đều là các đối tượng (Objects): cái xe Toyota, con chó Phú Quốc,  cái điện thoại iPhone, cái tủ lạnh Samsung...Và tất cả đều có đặc điểm riêng cho từng loại

Xe thì dùng xăng hay điện, màu trắng hay đen

Chó sủa to hay nhỏ, cao hay thấp

Điện thoại dung lượng 64GB hay 128GB, màu đỏ hay xanh

Từng loại mà chúng ta vừa nói có thể hiểu là lớp (Class): lớp điện thoại, lớp chó, lớp xe...

Đặc điểm của từng loại có thể hiểu là thuộc tính (Attribute) và phương thức (Method).


Tạo đối tượng (Object) trong Python

Nếu chúng ta muốn sử dụng các thuộc tính hoặc phương thức
trong một lớp chúng ta cần phải tạo một thể hiện của một lớp gọi là đối tượng.

Cú pháp
 

object-name = class-name(arguments)

Ví dụ trên object-namep, class-nameMyClass() và vì lớp của chúng ta đơn giản nên chưa có tham số.


Sau khi tạo đối tượng, chúng ta có thể "sử dụng" các thuộc tính và phương thức của lớp bằng cách dùng dấu chấm (.)

object-name.attribute/method

Chúng ta sẽ thay đổi chương trình trên


class MyClass:
  loichao ="Dat Viet Lap Trinh"
  def my_function():
    print("Xin Chao Cac Ban")

 
p = MyClass()
print(p.loichao)
p.my_function()


Chạy chương trình, chúng ta sẽ nhận được báo lỗi.



Mọi phương thức trong lớp cần ít nhất là một tham số, "lệ làng" là như vậy. Chúng ta sẽ thêm một tham số tên là self vào.


class MyClass:
  loichao ="Dat Viet Lap Trinh"
  def my_function(self):
    print("Xin Chao Cac Ban")
 
p = MyClass()
print(p.loichao)
p.my_function()


Bây giờ chương trình đã chạy "ngon lành"



Tham số self

Tham số trên không cần phải được đặt tên là self , bạn có thể gọi nó là bất cứ tên gì bạn thích, nhưng nó phải là tham số đầu tiên của bất kỳ hàm nào trong lớp. Chúng ta có thể sửa lại thành tham số abc, không có vấn đề gì

 

class MyClass:
  loichao ="Dat Viet Lap Trinh"
  def my_function(abc):
    print("Xin Chao Cac Ban")
 
p = MyClass()
print(p.loichao)
p.my_function() 

 

Chạy chương trình


 

Tham số abc đứng chơi, không có việc làm, chúng ta sẽ tạo việc làm cho nó


class MyClass:
  loichao ="Dat Viet Lap Trinh"
  def my_function(abc):
    print("Xin Chao Cac Ban")
    abc = 24
    print(abc)

 
p = MyClass()
print(p.loichao)
p.my_function()


Chạy chương trình



Có nghĩa là dù đứng "chơi cho vui", hay có "công ăn việc làm" tham số đầu tiên vẫn phải luôn có mặt

 

Phần tiếp theo

Phần trước

Không có nhận xét nào:

Đăng nhận xét