Hướng dẫn why python is object oriented scripting language? - tại sao python là ngôn ngữ kịch bản hướng đối tượng?

Có, Python hỗ trợ cả đối tượng & nbsp; định hướng & nbsp; và thủ tục & nbsp; ngôn ngữ lập trình vì đây là ngôn ngữ lập trình cấp cao được thiết kế cho lập trình mục đích chung. Python là đa Paradigm, bạn có thể viết các chương trình hoặc thư viện chủ yếu là thủ tục, hướng đối tượng hoặc chức năng trong tất cả các ngôn ngữ này. Nó phụ thuộc vào những gì bạn có nghĩa là chức năng. Python có một số tính năng của ngôn ngữ chức năng. & NBSP;Object  Oriented and Procedural  Programming language as it is a high level programming language designed for general purpose programming. Python are multi-paradigm, you can write programs or libraries that are largely procedural, object-oriented, or functional in all of these languages. It depends on what you mean by functional. Python does have some features of a functional language. 

Các khái niệm của OOP như, các lớp, đóng gói, đa hình, kế thừa, v.v. trong Python làm cho nó như một ngôn ngữ lập trình hướng đối tượng. & Nbsp;

Theo cách tương tự, chúng ta có thể tạo chương trình thủ tục thông qua Python bằng cách sử dụng các vòng lặp, trong khi, v.v. và cấu trúc kiểm soát.

Thí dụ

class Rectangle:
   def __init__[self, length, breadth, unit_cost=0]:
      self.length = length
      self.breadth = breadth
      self.unit_cost = unit_cost
   def get_perimeter[self]:
       return 2 * [self.length + self.breadth]
   def get_area[self]:
       return self.length * self.breadth
   def calculate_cost[self]:
      area = self.get_area[]
      return area * self.unit_cost
# breadth = 120 cm, length = 160 cm, 1 cm^2 = Rs 2000
r = Rectangle[160, 120, 2000]
print["Area of Rectangle: %s cm^2" % [r.get_area[]]]
print["Cost of rectangular field: Rs. %s " %[r.calculate_cost[]]]

Đầu ra

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000

Cập nhật vào ngày 30 tháng 3 năm 2019 22:30:26

  • Câu hỏi và câu trả lời liên quan
  • Sự khác biệt giữa lập trình theo thủ tục và đối tượng.
  • Lập trình hướng đối tượng trong Python?
  • Lập trình hướng đối tượng [OOP] là gì?
  • Dữ liệu ẩn trong lập trình hướng đối tượng Python là gì?
  • Cơ sở dữ liệu hướng đối tượng
  • Tại sao C ++ là ngôn ngữ định hướng đối tượng một phần?
  • Các đường dẫn hệ thống tập tin hướng đối tượng trong Python [Pathlib]
  • Mô hình dữ liệu hướng đối tượng
  • Lập trình hướng đối tượng trong JavaScript là gì?
  • Ngôn ngữ định hướng đối tượng V/s Ngôn ngữ lập trình theo định hướng theo định hướng.
  • Giải thích ngắn gọn các khái niệm định hướng đối tượng trong Python?
  • Sự khác biệt giữa ngôn ngữ thủ tục và phi thủ tục
  • Java cũng không được định hướng đối tượng thuần túy như C ++
  • Sự khác biệt giữa lập trình hướng đối tượng và lập trình dựa trên đối tượng là gì?
  • Sự khác biệt giữa các ngôn ngữ thủ tục và phi thủ tục trong thiết kế trình biên dịch là gì?

Lập trình hướng đối tượng

Python là một ngôn ngữ lập trình đa mô hình. Nó hỗ trợ các phương pháp lập trình khác nhau.

Một trong những cách tiếp cận phổ biến để giải quyết vấn đề lập trình là bằng cách tạo các đối tượng. Điều này được gọi là lập trình hướng đối tượng [OOP].

Một đối tượng có hai đặc điểm:

  • thuộc tính
  • hành vi

Hãy lấy một ví dụ:

Một con vẹt là một đối tượng, vì nó có các thuộc tính sau:

  • Tên, Tuổi, Màu sắc là Thuộc tính
  • Hát, nhảy như hành vi

Khái niệm OOP trong Python tập trung vào việc tạo mã có thể tái sử dụng. Khái niệm này còn được gọi là khô [không lặp lại chính mình].

Trong Python, khái niệm OOP tuân theo một số nguyên tắc cơ bản:

Lớp

Một lớp là một bản thiết kế cho đối tượng.

Chúng ta có thể nghĩ về lớp học như một bản phác thảo của một con vẹt với các nhãn. Nó chứa tất cả các chi tiết về tên, màu sắc, kích thước, vv Dựa trên những mô tả này, chúng ta có thể nghiên cứu về con vẹt. Ở đây, một con vẹt là một đối tượng.

Ví dụ cho lớp vẹt có thể là:

class Parrot:
    pass

Ở đây, chúng tôi sử dụng từ khóa

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
5 để xác định một con vẹt lớp trống. Từ lớp, chúng tôi xây dựng các trường hợp. Một thể hiện là một đối tượng cụ thể được tạo từ một lớp cụ thể.

Sự vật

Một đối tượng [ví dụ] là một khởi tạo của một lớp. Khi lớp được xác định, chỉ có mô tả cho đối tượng được xác định. Do đó, không có bộ nhớ hoặc lưu trữ được phân bổ.

Ví dụ cho đối tượng của lớp vẹt có thể là:

obj = Parrot[]

Ở đây, OBJ là một đối tượng của lớp

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
6.

Giả sử chúng ta có chi tiết của vẹt. Bây giờ, chúng ta sẽ chỉ ra cách xây dựng lớp và các đối tượng của vẹt.

Ví dụ 1: Tạo lớp và đối tượng trong Python

class Parrot:

    # class attribute
    species = "bird"

    # instance attribute
    def __init__[self, name, age]:
        self.name = name
        self.age = age

# instantiate the Parrot class
blu = Parrot["Blu", 10]
woo = Parrot["Woo", 15]

# access the class attributes
print["Blu is a {}".format[blu.__class__.species]]
print["Woo is also a {}".format[woo.__class__.species]]

# access the instance attributes
print["{} is {} years old".format[ blu.name, blu.age]]
print["{} is {} years old".format[ woo.name, woo.age]]

Đầu ra

Blu is a bird
Woo is also a bird
Blu is 10 years old
Woo is 15 years old

Trong chương trình trên, chúng tôi đã tạo một lớp có tên Parrot. Sau đó, chúng tôi xác định các thuộc tính. Các thuộc tính là một đặc điểm của một đối tượng.

Các thuộc tính này được xác định bên trong phương thức

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
7 của lớp. Đây là phương thức khởi tạo lần đầu tiên chạy ngay khi đối tượng được tạo.

Sau đó, chúng tôi tạo các trường hợp của lớp vẹt. Ở đây, Blu và Woo là tài liệu tham khảo [giá trị] cho các đối tượng mới của chúng tôi.

Chúng ta có thể truy cập thuộc tính lớp bằng

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
8. Các thuộc tính lớp là giống nhau cho tất cả các trường hợp của một lớp. Tương tự, chúng tôi truy cập các thuộc tính thể hiện bằng cách sử dụng
Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
9 và
class Parrot:
    pass
0. Tuy nhiên, các thuộc tính thể hiện là khác nhau cho mọi trường hợp của một lớp.

Để tìm hiểu thêm về các lớp học và đối tượng, hãy truy cập các lớp Python và các đối tượng

Phương pháp

Phương pháp là các chức năng được xác định bên trong cơ thể của một lớp. Chúng được sử dụng để xác định các hành vi của một đối tượng.

Ví dụ 2: Tạo các phương thức trong Python

class Parrot:
    
    # instance attributes
    def __init__[self, name, age]:
        self.name = name
        self.age = age
    
    # instance method
    def sing[self, song]:
        return "{} sings {}".format[self.name, song]

    def dance[self]:
        return "{} is now dancing".format[self.name]

# instantiate the object
blu = Parrot["Blu", 10]

# call our instance methods
print[blu.sing["'Happy'"]]
print[blu.dance[]]

Đầu ra

Blu sings 'Happy'
Blu is now dancing

Trong chương trình trên, chúng tôi đã tạo một lớp có tên Parrot. Sau đó, chúng tôi xác định các thuộc tính. Các thuộc tính là một đặc điểm của một đối tượng.

Các thuộc tính này được xác định bên trong phương thức
Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
7 của lớp. Đây là phương thức khởi tạo lần đầu tiên chạy ngay khi đối tượng được tạo.

Sau đó, chúng tôi tạo các trường hợp của lớp vẹt. Ở đây, Blu và Woo là tài liệu tham khảo [giá trị] cho các đối tượng mới của chúng tôi.

Chúng ta có thể truy cập thuộc tính lớp bằng
Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
8. Các thuộc tính lớp là giống nhau cho tất cả các trường hợp của một lớp. Tương tự, chúng tôi truy cập các thuộc tính thể hiện bằng cách sử dụng
Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
9 và
class Parrot:
    pass
0. Tuy nhiên, các thuộc tính thể hiện là khác nhau cho mọi trường hợp của một lớp.

# parent class
class Bird:
    
    def __init__[self]:
        print["Bird is ready"]

    def whoisThis[self]:
        print["Bird"]

    def swim[self]:
        print["Swim faster"]

# child class
class Penguin[Bird]:

    def __init__[self]:
        # call super[] function
        super[].__init__[]
        print["Penguin is ready"]

    def whoisThis[self]:
        print["Penguin"]

    def run[self]:
        print["Run faster"]

peggy = Penguin[]
peggy.whoisThis[]
peggy.swim[]
peggy.run[]

Đầu ra

Trong chương trình trên, chúng tôi đã tạo một lớp có tên Parrot. Sau đó, chúng tôi xác định các thuộc tính. Các thuộc tính là một đặc điểm của một đối tượng.

Các thuộc tính này được xác định bên trong phương thức

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
7 của lớp. Đây là phương thức khởi tạo lần đầu tiên chạy ngay khi đối tượng được tạo.

Sau đó, chúng tôi tạo các trường hợp của lớp vẹt. Ở đây, Blu và Woo là tài liệu tham khảo [giá trị] cho các đối tượng mới của chúng tôi.

Chúng ta có thể truy cập thuộc tính lớp bằng

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
8. Các thuộc tính lớp là giống nhau cho tất cả các trường hợp của một lớp. Tương tự, chúng tôi truy cập các thuộc tính thể hiện bằng cách sử dụng
Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
9 và
class Parrot:
    pass
0. Tuy nhiên, các thuộc tính thể hiện là khác nhau cho mọi trường hợp của một lớp.

Để tìm hiểu thêm về các lớp học và đối tượng, hãy truy cập các lớp Python và các đối tượng

Phương pháp

Ví dụ 4: Đóng gói dữ liệu trong Python

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
0

Đầu ra

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
1

Trong chương trình trên, chúng tôi đã xác định một lớp máy tính.

Chúng tôi đã sử dụng phương pháp

class Parrot:
    pass
8 để lưu trữ giá bán tối đa là
obj = Parrot[]
3. Ở đây, hãy chú ý mã

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
2

Ở đây, chúng tôi đã cố gắng sửa đổi giá trị của __maxprice bên ngoài lớp. Tuy nhiên, vì __maxprice là một biến riêng tư, việc sửa đổi này không được nhìn thấy trên đầu ra.

Như được hiển thị, để thay đổi giá trị, chúng ta phải sử dụng hàm setter, tức là

obj = Parrot[]
4 lấy giá làm tham số.

Đa hình

Đa hình là một khả năng [trong OOP] để sử dụng giao diện chung cho nhiều dạng [loại dữ liệu].

Giả sử, chúng ta cần tô màu một hình dạng, có nhiều tùy chọn hình dạng [hình chữ nhật, hình vuông, vòng tròn]. Tuy nhiên, chúng tôi có thể sử dụng cùng một phương pháp để tô màu bất kỳ hình dạng. Khái niệm này được gọi là đa hình.

Ví dụ 5: Sử dụng đa hình trong Python

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
3

Đầu ra

Area of Rectangle: 19200 cm^2
Cost of rectangular field: Rs. 38400000
4

Trong chương trình trên, chúng tôi đã xác định một lớp máy tính.

Chúng tôi đã sử dụng phương pháp

class Parrot:
    pass
8 để lưu trữ giá bán tối đa là
obj = Parrot[]
3. Ở đây, hãy chú ý mã

Ở đây, chúng tôi đã cố gắng sửa đổi giá trị của __maxprice bên ngoài lớp. Tuy nhiên, vì __maxprice là một biến riêng tư, việc sửa đổi này không được nhìn thấy trên đầu ra.

  • Như được hiển thị, để thay đổi giá trị, chúng ta phải sử dụng hàm setter, tức là
    obj = Parrot[]
    4 lấy giá làm tham số.
  • Đa hình
  • Đa hình là một khả năng [trong OOP] để sử dụng giao diện chung cho nhiều dạng [loại dữ liệu].
  • Giả sử, chúng ta cần tô màu một hình dạng, có nhiều tùy chọn hình dạng [hình chữ nhật, hình vuông, vòng tròn]. Tuy nhiên, chúng tôi có thể sử dụng cùng một phương pháp để tô màu bất kỳ hình dạng. Khái niệm này được gọi là đa hình.

Ví dụ 5: Sử dụng đa hình trong Python

Python được coi là một ngôn ngữ lập trình hướng đối tượng hơn là ngôn ngữ lập trình thủ tục.object-oriented programming language rather than a procedural programming language.

Tại sao Python được gọi là ngôn ngữ định hướng đối tượng?

Lập trình hướng đối tượng [OOP] đề cập đến ngôn ngữ lập trình trong đó các lập trình viên/nhà phát triển xác định rõ ràng các kiểu dữ liệu, cấu trúc dữ liệu và cả các loại chức năng có thể được áp dụng cho các cấu trúc dữ liệu.Do đó, các cấu trúc dữ liệu trở thành đối tượng trên mạng, kết hợp cả dữ liệu và chức năng.

Bài Viết Liên Quan

Chủ Đề