Tổng hợp các kiểu trong Python — vì sao kiểu quan trọng và cánh cửa bước vào class

Tổng hợp các kiểu dữ liệu cơ bản của Python qua sơ đồ và mở cánh cửa bước vào lập trình hướng đối tượng với class.

Rốt cuộc "kiểu" là gì?

Đến giờ bạn đã gặp rất nhiều kiểu — int, float, str, bool, list, dict, tuple, set và hơn nữa. Chọn kiểu phù hợp cho công việc là điều quan trọng nhất trong thực tế.

Kiểu quyết định "bạn có thể làm gì"
5 + 3(int)8(cộng)'hi' + '!'(str)'hi!'(ghép chuỗi)++

Như ví dụ cho thấy, ngay cả cùng toán tử + cũng thực hiện các thao tác khác nhau tùy theo kiểu.

Nói cách khác, chọn kiểu khác nhau tùy mục đích chính là cách bạn thay đổi những gì một biến có thể làm được.

Xem lại tất cả các kiểu đã học trong một lần

Hãy sắp xếp các kiểu trong Python Basics theo mục đích sử dụng. Dù bạn cần "tính toán số", "xử lý văn bản" hay "gom nhiều giá trị lại với nhau", kiểu phù hợp sẽ hiện ra một cách tự nhiên.

KiểuMục đích thường dùngVí dụ
intTính giá sản phẩm hoặc số lượng5, 100, -3
floatSố tiền đã gồm thuế hoặc tỷ lệ giảm giá3.14, 0.5
boolQuản lý trạng thái đăng nhập hoặc tình trạng còn hàngTrue, False
strLưu tên người dùng hoặc bình luận'hello'
listGiỏ hàng hoặc danh sách kết quả tìm kiếm có thứ tự[1, 2, 3]
tupleCặp cố định như kinh độ/vĩ độ(1, 2, 3)
dictLưu thông tin user (id / name / email){'a': 1}
setKhử trùng lặp tag, kiểm tra thành viên{1, 2, 3}

Bạn cũng nên nhớ một kiểu là có thể thay đổi (mutable) hay không thể thay đổi (immutable). list / dict / set là mutable; còn lại là immutable.

Bạn có thể tự định nghĩa kiểu của mình bằng class

Mọi thứ đã đề cập đến giờ — int / list / dict và anh em — đều là kiểu mà Python cung cấp sẵn (kiểu built-in). Trong các dự án thực tế, rất nhiều khái niệm xuất hiện mà chỉ dùng kiểu built-in không thể diễn tả hết, ví dụ "User", "Product", "Order"… Python cho phép bạn định nghĩa kiểu riêng bằng class — đó chính là cánh cửa bước vào lập trình hướng đối tượng (OOP). Chi tiết về OOP sẽ được giới thiệu lại trong các bài viết tiếp theo.

Class và instance
class Point(thiết kế)Point(3, 4)(gọi)p(thực thể)dùngtạo
# Định nghĩa một kiểu mới tên là Point (một tọa độ)
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

p = Point(3, 4)   # tạo một instance của Point
print(p.x)        # 3

Một khóa OOP đầy đủ sẽ có trong loạt bài khác

Class, kế thừa, đa hình và phần còn lại của lập trình hướng đối tượng sẽ được trình bày trong một loạt bài riêng. Giờ đây, chỉ cần biết rằng bên cạnh các kiểu built-in, bạn còn có thể tự xây kiểu của mình là đủ.

QUIZ

Kiểm tra kiến thức

Hãy trả lời từng câu hỏi một.

Câu 1Điều nào sau đây mô tả chính xác nhất mục đích của việc "để ý đến kiểu" trong Python?

Câu 2Trong các kiểu sau, kiểu nào là mutable (có thể thay đổi)?

Câu 3Bạn dùng từ khóa nào để định nghĩa kiểu mới của riêng mình trong Python?