Hướng dẫn dùng python __call__ python

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.

Hướng dẫn dùng python __call__ python

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: 
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

Đâ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: 
print(MyClass.func)

# Output: >
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.

  • Hàm slice() trong Python
  • Hàm iter() trong Python

Thứ Hai, 07/11/2022 09:54

4,812 👨 55.395

#Python

0 Bình luận

Sắp xếp theo

Hướng dẫn dùng python __call__ python

Xóa Đăng nhập để Gửi

Bạn nên đọc

  • Hướng dẫn dùng python __call__ python
    Samsung Galaxy S5 Mini bắt đầu cho đặt hàng tại Đức
  • Hướng dẫn dùng python __call__ python
    Vaio P có thể thêm phiên bản mới
  • Hướng dẫn dùng python __call__ python
    Bảo vệ bạn trước lỗ hổng bảo mật của IE
  • Hướng dẫn dùng python __call__ python
    Thi thử bằng lái xe B2 đề 3
  • Hướng dẫn dùng python __call__ python
    Truyện cười công nghệ: Như Lai truyền kinh thời hiện đại và cách bay nhanh

Python

  • Hướng dẫn dùng python __call__ python
    Kiểu dữ liệu trong Python: chuỗi, số, list, tuple, set và dictionary
  • Hướng dẫn dùng python __call__ python
    Viết chương trình tìm số bị thiếu trong danh sách đã sắp xếp bằng Python
  • Hướng dẫn dùng python __call__ python
    Biến toàn cục (global), biến cục bộ (local), biến nonlocal trong Python
  • Hướng dẫn dùng python __call__ python
    Viết chương trình in ra Tam giác Pascal bằng Python
  • Hướng dẫn dùng python __call__ python
    Lập trình game hứng trứng bằng Python
  • Hướng dẫn dùng python __call__ python
    Python là gì? Tại sao nên chọn Python?
Xem thêm

Python 3

  • Python cơ bản
    • Python là gì? Tại sao nên chọn Python?
    • Cách cài đặt Python trên Windows, macOS, Linux
    • Từ khóa và định danh
    • Cách viết lệnh, thụt lề và chú thích
    • Kiểu dữ liệu: chuỗi, số, list, tuple, set và dictionary
    • Tìm hiểu chương trình Python đầu tiên
    • Mảng trong Python
    • Cách sử dụng List comprehension
    • Kiểu dữ liệu số
    • Ép kiểu
  • Điều khiển luồng và vòng lặp
    • Lệnh if, if...else, if...elif...else
    • Vòng lặp for
    • Vòng lặp while
    • Lệnh break và continue
    • Lệnh pass
    • Các kỹ thuật vòng lặp
  • Hàm Python
    • Các hàm trong Python
    • Các hàm Python tích hợp sẵn
    • Hàm Python do người dùng tự định nghĩa
    • Tham số hàm Python
    • Hàm đệ quy trong Python
    • Hàm vô danh, Lambda
    • Các loại biến trong Python
    • Từ khóa global
    • Module
    • Pakage
  • File trong Python
    • Làm việc với File
    • Quản lý File và thư mục
    • Error (Lỗi) và Exception (Ngoại lệ)
    • Xử lý ngoại lệ - Exception Handling
  • Class và Object trong Python
    • Lập trình hướng đối tượng - OOP
    • Tìm hiểu Class và Object
    • Kế thừa (Inheritance)
    • Đa kế thừa (Multiple Inheritance)
    • Nạp chồng toán tử
  • Python nâng cao
    • Ma trận trong Python
    • Đối tượng Iterator trong Python
    • Generator trong Python
    • Closure trong Python
    • Decorator trong Python
    • @property trong Python
    • RegEx trong Python
  • Datetime trong Python
    • Datetime trong Python
    • Hàm datetime.strftime()
    • Hàm datetime.strptime()
    • Ngày giờ hiện tại
    • Chuyển đổi timestamp
    • Module time
    • Hàm time.sleep()
  • Bài tập Python
    • Hơn 100 bài tập Python có lời giải (code mẫu)
    • Giải phương trình bậc 2 một ẩn bằng Python
  • Trắc nghiệm Python
    • Python Quiz - Phần 1
    • Python Quiz - Phần 2
    • Python Quiz - Phần 3
    • Python Quiz - Phần 4
    • Python Quiz - Phần 5
    • Python Quiz - Phần 6
    • Python Quiz - Phần 7
    • Python Quiz - Phần 8
    • Python Quiz - Phần 9
    • Python Quiz - Phần 10
    • Python Quiz - Phần 11

  • Hướng dẫn dùng python __call__ python
    Công nghệ
    • Hướng dẫn dùng python __call__ python
      Ứng dụng
    • Hướng dẫn dùng python __call__ python
      Hệ thống
    • Hướng dẫn dùng python __call__ python
      Game - Trò chơi
    • Hướng dẫn dùng python __call__ python
      iPhone
    • Hướng dẫn dùng python __call__ python
      Android
    • Hướng dẫn dùng python __call__ python
      Linux
    • Hướng dẫn dùng python __call__ python
      Nền tảng Web
    • Hướng dẫn dùng python __call__ python
      Đồng hồ thông minh
    • Hướng dẫn dùng python __call__ python
      Chụp ảnh - Quay phim
    • Hướng dẫn dùng python __call__ python
      macOS
    • Hướng dẫn dùng python __call__ python
      Phần cứng
    • Hướng dẫn dùng python __call__ python
      Thủ thuật SEO
    • Hướng dẫn dùng python __call__ python
      Kiến thức cơ bản
    • Hướng dẫn dùng python __call__ python
      Raspberry Pi
    • Hướng dẫn dùng python __call__ python
      Dịch vụ ngân hàng
    • Hướng dẫn dùng python __call__ python
      Lập trình
    • Hướng dẫn dùng python __call__ python
      Dịch vụ công trực tuyến
    • Hướng dẫn dùng python __call__ python
      Dịch vụ nhà mạng
    • Hướng dẫn dùng python __call__ python
      Nhà thông minh
  • Hướng dẫn dùng python __call__ python
    Download
    • Hướng dẫn dùng python __call__ python
      Ứng dụng văn phòng
    • Hướng dẫn dùng python __call__ python
      Tải game
    • Hướng dẫn dùng python __call__ python
      Tiện ích hệ thống
    • Hướng dẫn dùng python __call__ python
      Ảnh, đồ họa
    • Hướng dẫn dùng python __call__ python
      Internet
    • Hướng dẫn dùng python __call__ python
      Bảo mật, Antivirus
    • Hướng dẫn dùng python __call__ python
      Họp, học trực tuyến
    • Hướng dẫn dùng python __call__ python
      Video, phim, nhạc
    • Hướng dẫn dùng python __call__ python
      Mail
    • Hướng dẫn dùng python __call__ python
      Lưu trữ đám mây
    • Hướng dẫn dùng python __call__ python
      Giao tiếp, liên lạc, hẹn hò
    • Hướng dẫn dùng python __call__ python
      Hỗ trợ học tập
    • Hướng dẫn dùng python __call__ python
      Máy ảo
  • Hướng dẫn dùng python __call__ python
    Tiện ích
  • Hướng dẫn dùng python __call__ python
    Khoa học
    • Hướng dẫn dùng python __call__ python
      Khoa học vui
    • Hướng dẫn dùng python __call__ python
      Khám phá khoa học
    • Hướng dẫn dùng python __call__ python
      Bí ẩn - Chuyện lạ
    • Hướng dẫn dùng python __call__ python
      Chăm sóc Sức khỏe
    • Hướng dẫn dùng python __call__ python
      Khoa học Vũ trụ
    • Hướng dẫn dùng python __call__ python
      Khám phá thiên nhiên
  • Hướng dẫn dùng python __call__ python
    Điện máy
    • Hướng dẫn dùng python __call__ python
      Tủ lạnh
    • Hướng dẫn dùng python __call__ python
      Tivi
    • Hướng dẫn dùng python __call__ python
      Điều hòa
    • Hướng dẫn dùng python __call__ python
      Máy giặt
  • Hướng dẫn dùng python __call__ python
    Cuộc sống
    • Hướng dẫn dùng python __call__ python
      Kỹ năng
    • Hướng dẫn dùng python __call__ python
      Món ngon mỗi ngày
    • Hướng dẫn dùng python __call__ python
      Làm đẹp
    • Hướng dẫn dùng python __call__ python
      Nuôi dạy con
    • Hướng dẫn dùng python __call__ python
      Chăm sóc Nhà cửa
    • Hướng dẫn dùng python __call__ python
      Kinh nghiệm Du lịch
    • Hướng dẫn dùng python __call__ python
      Halloween
    • Hướng dẫn dùng python __call__ python
      Mẹo vặt
    • Hướng dẫn dùng python __call__ python
      Giáng sinh - Noel
    • Hướng dẫn dùng python __call__ python
      Tết 2023
    • Hướng dẫn dùng python __call__ python
      Quà tặng
    • Hướng dẫn dùng python __call__ python
      Giải trí
    • Hướng dẫn dùng python __call__ python
      Là gì?
    • Hướng dẫn dùng python __call__ python
      Nhà đẹp
    • Hướng dẫn dùng python __call__ python
      TOP
    • Hướng dẫn dùng python __call__ python
      Phong thủy
  • Hướng dẫn dùng python __call__ python
    Video
    • Hướng dẫn dùng python __call__ python
      Công nghệ
    • Hướng dẫn dùng python __call__ python
      Cisco Lab
    • Hướng dẫn dùng python __call__ python
      Microsoft Lab
    • Hướng dẫn dùng python __call__ python
      Video Khoa học
  • Hướng dẫn dùng python __call__ python
    Ô tô, Xe máy
    • Hướng dẫn dùng python __call__ python
      Giấy phép lái xe
  • Hướng dẫn dùng python __call__ python
    Làng Công nghệ
    • Hướng dẫn dùng python __call__ python
      Tấn công mạng
    • Hướng dẫn dùng python __call__ python
      Chuyện công nghệ
    • Hướng dẫn dùng python __call__ python
      Công nghệ mới
    • Hướng dẫn dùng python __call__ python
      Trí tuệ nhân tạo (AI)
    • Hướng dẫn dùng python __call__ python
      Anh tài công nghệ
    • Hướng dẫn dùng python __call__ python
      Bình luận công nghệ
    • Hướng dẫn dùng python __call__ python
      Tổng hợp
  • Hướng dẫn dùng python __call__ python
    Học CNTT
    • Hướng dẫn dùng python __call__ python
      Quiz công nghệ
    • Hướng dẫn dùng python __call__ python
      Microsoft Word 2016
    • Hướng dẫn dùng python __call__ python
      Microsoft Word 2013
    • Hướng dẫn dùng python __call__ python
      Microsoft Word 2007
    • Hướng dẫn dùng python __call__ python
      Microsoft Excel 2019
    • Hướng dẫn dùng python __call__ python
      Microsoft Excel 2016
    • Hướng dẫn dùng python __call__ python
      Hàm Excel
    • Hướng dẫn dùng python __call__ python
      Microsoft PowerPoint 2019
    • Hướng dẫn dùng python __call__ python
      Microsoft PowerPoint 2016
    • Hướng dẫn dùng python __call__ python
      Google Sheets - Trang tính
    • Hướng dẫn dùng python __call__ python
      Photoshop CS6
    • Hướng dẫn dùng python __call__ python
      Photoshop CS5
    • Hướng dẫn dùng python __call__ python
      HTML
    • Hướng dẫn dùng python __call__ python
      CSS và CSS3
    • Hướng dẫn dùng python __call__ python
      Python
    • Hướng dẫn dùng python __call__ python
      Học SQL
    • Hướng dẫn dùng python __call__ python
      Lập trình C
    • Hướng dẫn dùng python __call__ python
      Lập trình C++
    • Hướng dẫn dùng python __call__ python
      Lập trình C#
    • Hướng dẫn dùng python __call__ python
      Học HTTP
    • Hướng dẫn dùng python __call__ python
      Bootstrap
    • Hướng dẫn dùng python __call__ python
      SQL Server
    • Hướng dẫn dùng python __call__ python
      JavaScript
    • Hướng dẫn dùng python __call__ python
      Học PHP
    • Hướng dẫn dùng python __call__ python
      jQuery
    • Hướng dẫn dùng python __call__ python
      Học MongoDB
    • Hướng dẫn dùng python __call__ python
      Unix/Linux
    • Hướng dẫn dùng python __call__ python
      Học Git
    • Hướng dẫn dùng python __call__ python
      NodeJS

Giới thiệu | Điều khoản | Bảo mật | Hướng dẫn | Ứng dụng | Liên hệ | Quảng cáo | Facebook | Youtube | DMCA

Giấy phép số 362/GP-BTTTT. Bộ Thông tin và Truyền thông cấp ngày 30/06/2016. Cơ quan chủ quản: CÔNG TY CỔ PHẦN MẠNG TRỰC TUYẾN META. Địa chỉ: 56 Duy Tân, Dịch Vọng Hậu, Cầu Giấy, Hà Nội. Điện thoại: 024 2242 6188. Email: [email protected]. Chịu trách nhiệm nội dung: Lê Ngọc Lam.

Bản quyền © 2003-2023 QuanTriMang.com. Giữ toàn quyền. Không được sao chép hoặc sử dụng hoặc phát hành lại bất kỳ nội dung nào thuộc QuanTriMang.com khi chưa được phép.