• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Kiến thức tổng hợp Lập trình

Tìm hiểu Class và Object trong Python

@admiz by @admiz
27/12/2021
in Lập trình
0

Python là một ngôn ngữ lập trình hướng đối tượng. Không giống như lập trình hướng thủ tục nhấn mạnh vào các hàm, lập trình hướng đối tượng tập trung làm việc trên các đối tượng.

Đối tượng (Object) chỉ đơn giản là một tập hợp các dữ liệu (các biến) và các phương thức (các hàm) hoạt động trên các dữ liệu đó. Và, lớp (class) là một kế hoạch chi tiết cho đối tượng.

Chúng ta có thể nghĩ về class như một bản phác thảo (nguyên mẫu) của một ngôi nhà. Nó chứa tất cả các chi tiết về sàn nhà, cửa ra vào, cửa sổ,… Dựa trên những mô tả này, chúng ta sẽ xây dựng những ngôi nhà. Vậy nhà ở đây chính là đối tượng.

Vì nhiều ngôi nhà có thể được làm từ một mô tả nên chúng ta có thể tạo ra nhiều vật thể từ một lớp. Một đối tượng cũng được gọi là một thể hiện (instance) của một lớp và quá trình tạo đối tượng này được gọi là instantiation.

Xem thêm: Tìm hiểu về Class, Object và Instance trong lập trình hướng đối tượng

Khai báo Class

Giống như khai báo các hàm bắt đầu bằng một từ khóa là def thì khai báo lớp trong Python sử dụng từ khóa class.

Dòng kí tự đầu tiên được gọi là docstring – một mô tả ngắn gọn về lớp. Docstring này không bắt buộc nhưng khuyến khích sử dụng.

class MyNewClass:
'''Đây là docstring. Một lớp mới vừa được khai báo.'''
pass

Đây là cách khai báo class đơn giản.

Class tạo ra một local namespace mới trở thành nơi để các thuộc tính của nó được khai báo. Thuộc tính có thể là hàm hoặc dữ liệu.

Ngoài ra còn có các thuộc tính đặc biệt bắt đầu với dấu gạch dưới kép (__). Ví dụ: __doc__ sẽ trả về chuỗi docstring mô tả của lớp đó.

Ngay khi khai báo một lớp, môt đối tượng trong lớp mới sẽ được tạo ra với cùng một tên. Đối tượng lớp này cho phép chúng ta truy cập các thuộc tính khác nhau cũng như để khởi tạo các đối tượng mới của lớp đó.

class MyClass:
"Đây là class thứ 2 được khởi tạo"
a = 10
def func(self):
print('Xin chào')

# Output: 10
print(MyClass.a)

# Output: <function MyClass.func at 0x0000000003079BF8>
print(MyClass.func)

# Output: 'Đây là class thứ 2 được khởi tạo'
print(MyClass.__doc__)

Sau khi chạy chương trình, kết quả được trả về là:

10
<function MyClass.func at 0x7fe90f834400>
Đây là class thứ 2 được khởi tạo

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

Như đã nói ở các bài học trước, đối tượng trong class có thể được sử dụng để truy cập các thuộc tính khác nhau và tạo các instance mới của lớp đó. Thủ tục để tạo một đối tượng tương tự như cách chúng ta gọi hàm.

ob = MyClass()

Lệnh này đã tạo ra một đối tượng mới có tên là ob.

Một ví dụ kĩ hơn về tạo đối tượng bao gồm cả các thuộc tính, phương thức:

class MyClass: 
"Đây là class thứ 3 được khởi tạo"
a = 10
def func(self):
print('Xin chào')

ob = MyClass()

# Output: <function MyClass.func at 0x000000000335B0D0>
print(MyClass.func)

# Output: <bound method MyClass.func of <__main__.MyClass object at 0x000000000332DEF0>>
print(ob.func)

# Gọi hàm func()
# Output: Xin chào
ob.func()

Bạn có thể thấy rằng khi định nghĩa hàm trong class, ta có parameter là self, nhưng khi gọi hàm obj.func() không cần parameter, vẫn không gặp lỗi. Bởi vì, bất cứ khi nào, object gọi các phương thức, object sẽ tự pass qua parameter đầu tiên. Nghĩa là obj.func() tương đương với MyClass.func(obj)

Constructor trong Python

Hàm trong Class được bắt đầu với dấu gạch dưới kép (__) là các hàm đặc biệt, mang các ý nghĩa đặc biệt.

Một trong đó là hàm __init__(). Hàm này được gọi bất cứ khi nào khởi tạo một đối tượng, một biến mới trong class và được gọi là constructor trong lập trình hướng đối tượng.

class SoPhuc:

def __init__(self,r = 0,i = 0):
self.phanthuc = r
self.phanao = i

def getData(self):
print("{ +{ j".format(self.phanthuc,self.phanao))

# Tạo đối tượng số phức mới
c1 = SoPhuc(2,3)

# Gọi hàm getData()
# Output: 2+3j
c1.getData()

# Tạo đối tượng số phức mới
# tạo thêm một thuộc tính mới (new)
c2 = SoPhuc(5)
c2.new = 10

# Output: (5, 0, 10)
print((c2.phanthuc, c2.phanao, c2.new))

# Đối tượng c1 không có thuộc tính 'new'
# AttributeError: 'SoPhuc' object has no attribute 'new'
c1.new

Trong ví dụ trên, chúng ta khai báo một lớp mới để biểu diễn các số phức. Nó có hai hàm, __init __() để khởi tạo các biến (mặc định là 0) và getData() để hiển thị đúng số.

Lưu ý rằng các thuộc tính thêm vào của đối tượng có thể được tạo ra một cách nhanh chóng, như ở ví dụ trên là ta đã tạo một thuộc tính mới ‘new’ cho đối tượng c2 và có thể gọi ra ngay lập tức. Tuy nhiên thuộc tính mới này sẽ không áp dụng với các đối tượng đã khai báo trước như c1.

Xóa bỏ thuộc tính và đối tượng

Thuộc tính của đối tượng có thể bị xóa bằng lệnh del.

>>> c1 = SoPhuc(2,3)
>>> del c1.phanao
>>> c1.getData()
Traceback (most recent call last):
...
AttributeError: 'SoPhuc' object has no attribute 'phanao'

>>> del SoPhuc.getData
>>> c1.getData()
Traceback (most recent call last):
...
AttributeError: 'SoPhuc' object has no attribute 'getData'

Thậm chí bạn có thể xóa chính đối tượng đó bằng cách sử dụng câu lệnh del.

>>> c1 = SoPhuc(1,3)
>>> del c1
>>> c1
Traceback (most recent call last):
...
NameError: name 'c1' is not defined

Sau khi bị xóa, object vẫn tồn tại trên bộ nhớ, nhưng sau đó phương thức destruction của Python (hay còn gọi là garbage collection) sẽ loại bỏ hoàn toàn các dữ liệu này trên bộ nhớ.

Bài viết hôm nay đã cung cấp cho bạn các kiến thức cơ bản về Class và Object rồi đấy. Để tiếp tục chủ đề về Lập trình hướng đối tượng trong Python, bài sau Quantrimang sẽ cùng bạn tìm hiểu về Kế thừa và Đa kế thừa. Mời bạn đọc theo dõi.

Xem thêm:

  • Xử lý ngoại lệ – Exception Handling trong Python
  • Làm việc với File trong Python
  • Ma trận trong Python

Bài trước: Lập trình hướng đối tượng trong Python

Bài tiếp: Kế thừa (Inheritance) trong Python

  • Hàm slice() trong Python
  • Hàm iter() trong Python
Post Views: 177
Tags: class trong lập trìnhclass và objectclass và object pythonclass và object trong lập trìnhconstructor trong pythonkhai báo classkhai báo objectobject trong lập trìnhtạo đối tượng trong pythonxóa bỏ đối tượng pythonxóa bỏ thuộc tính
Previous Post

Mời tải bộ hình nền iPhone 11, iPhone 11 Pro, iPhone 11 Pro Max

Next Post

Hướng dẫn cài Windows 11, cài Win 11 bằng file ISO

Related Posts

Dien Tich Tam Giac 640 1
Lập trình

Công thức tính diện tích tam giác: vuông, thường, cân, đều

26/12/2021
Huong Dan Cai Dat Node Js 640 1
Lập trình

Hướng dẫn cài đặt Node.js

26/12/2021
Cau Truc Du Lieu Hang Doi Queue 640 1
Lập trình

Cấu trúc dữ liệu hàng đợi (Queue)

26/12/2021
Hoc Css 640 8
Lập trình

Thanh điều hướng – Navigation Bar trong CSS

26/12/2021
Ms Sql Server Management Studio 640 3
Lập trình

Quản lý MS SQL Server bằng Management Studio

26/12/2021
Java Development Kit 1
Lập trình

Tải Java Development Kit 8-update-281

26/12/2021
Next Post

Hướng dẫn cài Windows 11, cài Win 11 bằng file ISO

Bài mới nhất

Sitemap Là Gì? Vì Sao Doanh Nghiệp Lại Cần Phải Tạo Sitemap Cho Website? 612d214ccfff9.jpeg

Sitemap là gì? Vì sao doanh nghiệp lại cần phải tạo sitemap cho website?

27/06/2025
Top 11 Công Ty Thiết Kế Website Tại Huế Uy Tín, Chuyên Nghiệp, Chuẩn Seo 612d25b49e1ec.jpeg

Top 11 công ty thiết kế website tại Huế uy tín, chuyên nghiệp, chuẩn SEO

26/06/2025
mẫu thiết kế website công ty người mẫu ấn tượng

Dịch vụ thiết kế website công ty người mẫu nổi bật, cao cấp tại NQ News

26/06/2025
Thiết Kế Website Công Ty Viễn Thông, Dịch Vụ Mạng Chuyên Nghiệp, Uy Tín 612d253e4213f.jpeg

Thiết kế website công ty viễn thông, dịch vụ mạng chuyên nghiệp, uy tín

25/06/2025
Top 11 Trang Web Hẹn Hò Uy Tín, Chất Lượng Nhất Dành Cho Người độc Thân 612d2550e83dd.jpeg

Top 11 trang web hẹn hò uy tín, chất lượng nhất dành cho người độc thân

25/06/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution