Phương thức __class__ trong python

Python là một ngôn ngữ thiết lập 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 chức năng, 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 [lớp] là một kế hoạch chi tiết cho các đối tượng

Chúng ta có thể ví lớp học 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 tôi sẽ xây dựng những ngôi nhà đó. Do đó ngôi nhà ở đây chính là đối tượng

Vì nhiều ngôi nhà có thể được tạo ra 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òn được gọi là một thể hiện [thể hiện] của một lớp và quá trình tạo các đối tượng này được gọi là khởi tạo

Xem thêm. Tìm hiểu về Class, Object và Instance trong việc thiết lập hướng đối tượng

Khai báo lớp học

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 lớp

Dòng ký tự đầu tiên được gọi là chuỗi tài liệu - một mô tả ngắn gọn về lớp. Chuỗi tài liệu 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 lớp đơn giản

Lớp tạo ra một không gian tên cục bộ mới trở thành nơi dành cho 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 gạch dưới kép [__]. Ví dụ. __doc__ will return to doc string description of the layer that

Ngay khi khai báo một lớp, một đối tượng trong lớp mới sẽ được tạo ra cùng với một tên. Lớp đối tượng 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, các đối tượng trong lớp có thể được sử dụng để truy cập các thuộc tính khác nhau và tạo ra các thể hiện mới của lớp đó. Tiếp 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ỹ thuật hơn về việc 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ó tham số là self, nhưng khi gọi hàm obj. func[] không cần tham số, vẫn không gặp lỗi. Bởi vì, bất kể khi nào, đối tượng gọi các phương thức, đối tượng sẽ tự động vượt qua tham số đầu tiên. Nghĩa là đối tượng. func[] tương đương với MyClass. chức năng [obj]

Constructor trong Python

Hàm trong Lớp đượ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 là bất cứ khi nào khởi tạo một đối tượng, một biến mới trong lớp và được gọi là hàm tạo trong khi thiết lập 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ị số đúng

Lưu ý rằng các thuộc tính bổ sung vào đố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' 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 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 xóa

>>> 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 xóa

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

Sau khi bị xóa, đối tượng vẫn tồn tại trên bộ nhớ, nhưng sau đó phương thức hủy diệt của Python [hay còn gọi là bộ sưu tập rác] 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 các bạn những 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ứ Hải, 11/07/2022 09. 54

4,812 👨 54. 366

#trăn

0 Bình luận

Sắp xếp theo

Delete Login to Send

Bạn nên đọc

  • Cách sử dụng Chia sẻ lân cận trên điện thoại Android
  • Deja reve là gì?
  • 47 cơ quan chính phủ Mỹ lộ thông tin đăng nhập
  • Trên giao diện mới của Pebble. đẹp, tiện dụng và vui vẻ hơn
  • Cách cài đặt Android trên máy tính Windows mà không cần phần mềm giả lập

con trăn

  • Nạp chồng toán tử trong Python
  • Hàm sum[] trong Python
  • Lập trình hướng đối tượng trong Python
  • Hàm help[] trong Python
  • Hàm list[] trong Python
  • Quản lý tệp và thư mục trong Python
Xem thêm

Trăn 3

  • Python cơ bản
    • Python là gì?
    • Cách cài đặt Python trên Windows, macOS, Linux
    • Từ khoá và định danh
    • Cách viết lệnh, thụt lề và chú thích
    • Data type. string, number, list, tuple, set and dictionary
    • First Python search program
    • Array in Python
    • Cách sử dụng Danh sách hiểu
  • Điều khiển luồng và vòng lặp
    • Ra lệnh nếu, nếu. khác, nếu. yêu tinh. khác
    • Vòng lặp cho
    • Vòng lặp trong khi
    • Ngắt lệnh và tiếp tục
    • vượt qua lệnh
    • Các kỹ thuật vòng lặp
  • hàm trăn
    • 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 đị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
    • Global key
    • mô-đun
    • gói
  • Tệp trong Python
    • Làm việc với File
    • Quản lý tệp và thư mục
    • Lỗi [Lỗi] và Ngoại lệ [Ngoại lệ]
    • Xử lý ngoại lệ - Xử lý ngoại lệ
  • Class và Object trong Python
    • Lập trình hướng đối tượng - OOP
    • Tìm hiểu Lớp và Đối tượng
    • Kế thừa [Inheritance]
    • Kế thừa [Multiple Inheritance]
    • Nạp tiền điện tử
  • Python nâng cao
    • Ma trận trong Python
    • Đối tượng Iterator trong Python
    • Trình tạo trong Python
    • Closure trong Python
    • Decorator trong Python
    • @property trong Python
    • RegEx trong Python
  • Ngày giờ trong Python
    • Ngày giờ trong Python
    • Hàm datetime. strftime[]
    • Hàm datetime. strptime[]
    • Hiện tại ngày
    • Chuyển đổi dấu thời gian
    • thời gian mô-đun
    • thời gian hàm. ngủ[]
  • Python file
    • Hơn 100 bài tập Python có lời giải [mẫu mã]
    • Passive method 2 a hide by Python
  • Trace Python
    • Trắc nghiệm Python - Phần 1
    • Trắc nghiệm Python - Phần 2
    • Trắc nghiệm Python - Phần 3
    • Trắc nghiệm Python - Phần 4
    • Trắc nghiệm Python - Phần 5
    • Trắc nghiệm Python - Phần 6
    • Trắc Nghiệm Python - Phần 7
    • Trắc nghiệm Python - Phần 8
    • Trắc nghiệm Python - Phần 9
    • Python Quiz - Phần 10
    • Trắc nghiệm Python - Phần 11

  • công nghệ
    • Ứng dụng
    • hệ thống
    • Game - Trò chơi
    • điện thoại Iphone
    • Android
    • Linux
    • Nền web
    • Đồng hồ thông minh
    • Chụp ảnh - Quay phim
    • hệ điều hành Mac
    • Phần cứng
    • SEO thủ thuật
    • base format
    • quả mâm xôi
    • Dịch vụ ngân hàng
    • Lập trình
    • Online service
    • Dịch vụ nhà mạng
    • Nhà thông minh
  • Tải xuống
    • Ứng dụng văn phòng
    • Tải game
    • Hệ thống tiện ích
    • Ảnh, đồ họa
    • Internet
    • Bảo mật, Antivirus
    • Họp, học trực tuyến
    • Video, phim, nhạc
    • Thư
    • Lưu trữ đám mây
    • Giao tiếp, liên lạc, hẹn hò
    • Support for learning
    • Máy ảo
  • Tiện ích
  • Khoa học
    • Khoa học vui
    • Khám phá khoa học
    • Bí ẩn - Chuyện lạ
    • Chăm sóc sức khỏe
    • Khoa học Vũ trụ
    • Khám phá thiên nhiên
  • Điện máy
    • tủ lạnh
    • tivi
    • Điều hòa
    • Máy giặt
  • Cuộc sống
    • Kỹ năng
    • Món ngon mỗi ngày
    • làm đẹp
    • nuôi dạy con
    • Chăm sóc nhà cửa
    • Kinh nghiệm Du lịch
    • Halloween
    • mẹo vặt
    • giáng sinh - noel
    • tết 2023
    • quà tặng
    • Giải trí
    • Là gì?
    • nhà đẹp
    • ĐỨNG ĐẦU
    • phong thủy
  • Video
    • công nghệ
    • Phòng thí nghiệm của Cisco
    • Phòng thí nghiệm của Microsoft
    • Video Khoa học
  • Ô tô, Xe máy
    • Giấy phép lái xe
  • Làng công nghệ
    • Tấn công mạng
    • Công nghệ
    • new technology
    • Trí tuệ nhân tạo [AI]
    • Anh tài công nghệ
    • Bình luận công nghệ
    • Tổng hợp
  • Học CNTT
    • quiz technology
    • Microsoft Word 2016
    • Microsoft Word 2013
    • Word 2007
    • Excel 2019
    • Excel 2016
    • Microsoft PowerPoint 2019
    • Microsoft PowerPoint 2016
    • Google Trang tính - Trang tính
    • photoshop CS6
    • photoshop CS5
    • HTML
    • CSS và CSS3
    • con trăn
    • Học SQL
    • Lập trình C
    • Lập trình C++
    • Lập trình C#
    • Học HTTP
    • Bootstrap
    • Máy chủ SQL
    • JavaScript
    • Học PHP
    • jQuery
    • Học MongoDB
    • Unix/Linux
    • Học Git
    • 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. address. 56 Duy Tân, Dịch Vọng Hậu, Cầu Giấy, Hà Nội. Điện thoại. 024 2242 6188. E-mail. thông tin @ meta. vn. Chịu trách nhiệm nội dung. Lê Ngọc Lâm

Bản quyền © 2003-2022 QuanTriMang. com. Giữ toàn quyền. Không thể 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 về QuanTriMang. com khi chưa được cấp phép

Chủ Đề