Nó có
Phần mở rộng tên file của Python có nhiều dạng như: .py,.pyc, .pyd, .pyo, .pyw, .pyz. Nó là hướng đối tượng, chức năng, thủ tục, phản ánh và mệnh lệnh. Hiện đang được duy trì và phát triển bởi Python Software Foundation. Python chủ yếu bị ảnh hưởng bởi các ngôn ngữ như CoffeeScript, JavaScript, Go, Ruby, Swift và Groovy. Nó cũng là một ngôn ngữ lập trình đa mô hình. Các đặc điểm lập trình chức năng của Python được lấy cảm hứng từ ngôn ngữ lập trình Lisp. Ngoài ra, Python còn hỗ trợ lập trình hướng khía cạnh (Aspect-Oriented Programming).
Lập trình hướng đối tượng
Mô hình lập trình hướng đối tượng hoạt động bằng cách tương tác và gọi các thuộc tính giữa các đối tượng khác nhau. Có nhiều khái niệm khác nhau như:
Lớp (Class), Đối tượng (Object), Tính đa hình (Polymorphism), Tính đóng gói (Encapsulation), Tính kế thừa (Inheritance).
Các đặc điểm phân biệt của Lập trình hướng đối tượng:
So sánh với các ngôn ngữ lập trình hướng đối tượng khác
Các ngôn ngữ lập trình hướng đối tượng khác bao gồm C++, Java, Objective C, Ruby, Smalltalk, Visual Basic.NET, Simula, JavaScript,... Python có sự tương đương với Java, JavaScript trong việc tham chiếu đến đối tượng. Trong Python, lớp (class) được dùng để định nghĩa Lớp (Class), tương tự với các ngôn ngữ hướng đối tượng còn lại, chẳng hạn như JavaScript, để định nghĩa một lớp theo ES6 (ECMAScript - một tiêu chuẩn cho ngôn ngữ lập trình JavaScript). Cách thức ban đầu được gọi khi khởi tạo đối tượng là _init_; trong Java nó sẽ được tạo mặc định hoặc được khai báo; trong JavaScript nó theo cơ chế dựa trên nguyên mẫu, trong đó cơ chế đối tượng gốc sẽ được gọi hoặc được thực hiện vì nó có cơ chế kế thừa nguyên mẫu.
Cơ chế kế thừa tồn tại trong Python tương tự với các ngôn ngữ khác như C++, Java,...
Python thường mất nhiều thời gian hơn Java dẫn đến việc thực thi các chương trình chậm hơn. Tuy nhiên, Python lại có thể viết chương trình dễ dàng hơn so với các ngôn ngữ lập trình hướng đối tượng khác vì cú pháp (syntax) dễ sử dụng hơn và ngắn hơn.
Python cũng có thể tích hợp với các ngôn ngữ lập trình hướng đối tượng khác như Java để phát triển các ứng dụng bằng cả hai ngôn ngữ, điều này có thể giúp ích cho các chức năng trong chương trình và cả hai có thể gọi nhau để thực thi ứng dụng.
Sự khác biệt giữa ngôn ngữ lập trình hướng đối tượng (Object-Oriented) và không hướng đối tượng (Non-Object Oriented)
Ngôn ngữ lập trình hướng đối tượng có các tính năng mạnh để phát triển các ứng dụng kịch bản trong thế giới thực, trong khi đó ngôn ngữ lập trình không hướng đối tượng như ngôn ngữ thủ tục có các tính năng bị hạn chế liên quan đến các ứng dụng thời gian thực.
Lập trình hướng đối tượng tiếp cận theo cách từ dưới lên còn lập trình không hướng đối tượng thì tiếp cận theo cách từ trên xuống. Các tính năng lập trình sẽ được chia thành các phương thức hoặc đối tượng, trong khi đó lập trình không hướng đối tượng định nghĩa các chức năng như một đoạn mã để thực thi các hoạt động. Lập trình hướng đối tượng có thể thực hiện việc ẩn dữ liệu nhưng trong lập trình không hướng đối tượng thì không. Tính kế thừa và tính trừu tượng là những tính năng mạnh mẽ có trong lập trình hướng đối tượng, những tính năng này không tồn tại trong lập trình không hướng đối tượng.
Tiếp đó trong lập trình hướng đối tượng cho phép nạp chồng toán tử, ngược lại nó không được cho phép trong lập trình không hướng đối tượng. Ví dụ về các ngôn ngữ lập trình không hướng đối tượng như là Pascal, Fortran, …
Kết luận
Các đặc tính hướng đối tượng của một ngôn ngữ lập trình cung cấp nhiều tính năng phong phú trong việc phát triển các ứng dụng phức tạp với quy mô lớn, cho phép vận hành các doanh nghiệp trong thế giới kỹ thuật số hiện nay với nhu cầu về lượng dữ liệu và khách hàng ngày càng tăng. Kết luận lại cho câu hỏi “Python có phải là một ngôn ngữ lập trình hướng đối tượng hay không?”, chúng tôi cần cho bạn biết rằng Python có thể được sử dụng để phát triển các ứng dụng web bằng cách sử dụng một framework có tên là Django, framework này cung cấp hầu hết các triển khai để dễ dàng phát triển web; vì vậy, Python là ngôn ngữ lập trình hướng đối tượng.
Bên cạnh đó, cũng có các framework khác được sử dụng trong ngôn ngữ Python để phát triển các loại ứng dụng khác nhau tùy theo từng yêu cầu khác nhau. Python cũng có các tính năng khác như chức năng (Functional), thủ tục (Procedural), Phản xạ (Reflective), mệnh lệnh (Imperative), v.v., bên cạnh tính năng hướng đối tượng.
Ngoài ứng dụng như một ngôn ngữ lập trình hướng đối tượng (OOP), Python cũng được ứng dụng trong các lĩnh vực khác như Networking, Web frameworks, Graphical User Interfaces, Databases, Automation, v.v.(Imperative), v.v., bên cạnh tính năng hướng đối tượng.