Chúng ta có thể tạo đối tượng của hàm trong Python không?

Python là một ngôn ngữ hướng đối tượng và hầu hết mọi thực thể trong Python đều là một đối tượng, điều đó có nghĩa là các lập trình viên sử dụng rộng rãi các lớp và đối tượng trong khi viết mã bằng Python. Các đối tượng trong Python về cơ bản là sự đóng gói các biến và hàm Python mà chúng nhận được từ các lớp

Trong mô-đun này, chúng ta sẽ tìm hiểu từng khía cạnh của lớp và đối tượng trong Python theo thứ tự sau

Vì vậy, không chậm trễ hơn nữa, hãy bắt đầu

Xem video này trên “Các lớp và đối tượng Python”

Tham gia Khóa học Python trực tuyến chuyên nghiệp nhất ở Toronto để có một sự nghiệp xuất sắc ngay bây giờ

Đối tượng trong Python là gì?

Python là ngôn ngữ lập trình tập trung vào lập trình hướng đối tượng. Trong Python, hầu hết mọi thứ đều là đối tượng. Chúng ta có thể kiểm tra xem python có phải là một đối tượng hay không bằng cách sử dụng type(). Nó chỉ là một tập hợp các biến và hàm Python. Có nhiều loại đối tượng trong Python như Danh sách, từ điển, tệp, bộ, chuỗi, v.v. Một đối tượng được định nghĩa bởi lớp của nó. Ví dụ, một biến số nguyên là thành viên của lớp số nguyên. Một đối tượng là một thực thể vật lý. Các thuộc tính của một đối tượng như sau. Trạng thái, Danh tính và hành vi là ba thuộc tính chính của đối tượng

Định nghĩa của lớp Python chỉ đơn giản là một thực thể logic hoạt động như một nguyên mẫu hoặc mẫu để tạo các đối tượng. Các lớp Python cung cấp các phương thức có thể được sử dụng để sửa đổi trạng thái của đối tượng. Họ cũng xác định những phẩm chất mà một đối tượng có thể sở hữu

Biến lớp Python

Tất cả các thể hiện đối tượng của một lớp chia sẻ một biến lớp Python. Khi một lớp đang được tạo, các biến được xác định. Chúng không được định nghĩa trong bất kỳ phương thức nào của lớp

Các biến và hàm được định nghĩa bên trong lớp và được truy cập bằng các đối tượng. Các biến và hàm này được gọi chung là các thuộc tính
Certification in Full Stack Web Development

Ví dụ về các lớp và đối tượng Python

Hãy lấy một ví dụ để hiểu khái niệm về lớp và đối tượng trong Python. Chúng ta có thể nghĩ về một đối tượng như một đối tượng thông thường hàng ngày, chẳng hạn như một chiếc ô tô. Bây giờ, như đã thảo luận ở trên, chúng ta biết rằng một lớp có dữ liệu và chức năng được xác định bên trong nó, và tất cả dữ liệu và chức năng này có thể được coi là các tính năng và hành động của đối tượng, tương ứng. Tức là các tính năng (dữ liệu) của xe (đối tượng) là màu sắc, giá cả, số cửa, v.v. Các hành động (chức năng) của ô tô (đối tượng) là tốc độ, ứng dụng phanh, v.v. Nhiều đối tượng với các dữ liệu và chức năng khác nhau được liên kết với chúng có thể được tạo bằng cách sử dụng một lớp như được mô tả trong sơ đồ sau

Ưu điểm của việc sử dụng các lớp trong Python

  • Các lớp cung cấp một cách dễ dàng để giữ các thành viên dữ liệu và các phương thức cùng nhau ở một nơi giúp giữ cho chương trình có tổ chức hơn
  • Việc sử dụng các lớp cũng cung cấp một chức năng khác của mô hình lập trình hướng đối tượng này, đó là tính kế thừa
  • Các lớp cũng giúp ghi đè bất kỳ toán tử tiêu chuẩn nào
  • Sử dụng các lớp cung cấp khả năng sử dụng lại mã giúp chương trình hiệu quả hơn
  • Nhóm các chức năng liên quan và giữ chúng ở một nơi (bên trong một lớp) cung cấp một cấu trúc rõ ràng cho mã làm tăng khả năng đọc của chương trình

Trở thành Lập trình viên Python chuyên nghiệp với Khóa đào tạo Python hoàn chỉnh này tại Singapore

Giống như một hàm trong Python được định nghĩa bằng từ khóa def, một lớp trong Python cũng được định nghĩa bằng từ khóa lớp, theo sau là tên lớp

Tương tự như các chức năng, chúng tôi cũng sử dụng các tài liệu trong các lớp. Mặc dù việc sử dụng các chuỗi tài liệu là không bắt buộc, nhưng nó vẫn được khuyến nghị vì nó được coi là một cách thực hành tốt để bao gồm một mô tả ngắn gọn về lớp để tăng khả năng đọc và dễ hiểu của mã

Ví dụ sau minh họa cách định nghĩa một lớp trong python

class IntellipaatClass:
“Class statements and methods here'”

Câu lệnh tạo lớp sẽ tạo một không gian tên cục bộ cho tất cả các thuộc tính bao gồm các thuộc tính đặc biệt bắt đầu bằng hai dấu gạch dưới (__), ví dụ: __init__() và __doc__(). Ngay sau khi lớp được tạo, một đối tượng lớp cũng được tạo, được sử dụng để truy cập các thuộc tính trong lớp, chúng ta hãy hiểu điều này với sự trợ giúp của một ví dụ về lớp Python

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)

đầu ra

Welcome to Intellipaat
5 

Tạo một đối tượng trong Python

Chúng ta đã thấy trong chủ đề trước rằng đối tượng lớp có cùng tên với lớp được sử dụng để truy cập các thuộc tính. Đó không phải là tất cả các đối tượng lớp được sử dụng cho;

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)#creating a new object named object1 using class object
object1 = IntellipaatClass()

đầu ra

Welcome to Intellipaat

Chúng ta phải lưu ý rằng chúng ta đang sử dụng một tham số có tên là self trong khi định nghĩa hàm trong lớp, nhưng chúng ta không thực sự chuyển bất kỳ giá trị nào trong khi gọi hàm. Đó là bởi vì, khi một hàm được gọi bằng một đối tượng, thì chính đối tượng đó sẽ tự động được chuyển đến hàm dưới dạng đối số, vì vậy object1. function1() tương đương với object1. hàm1(đối tượng1). Đó là lý do tại sao đối số đầu tiên trong hàm phải là chính đối tượng, thường được gọi là 'self'. Nó cũng có thể được đặt tên khác, nhưng đặt tên nó là 'bản thân' là một quy ước và việc tuân theo quy ước này được coi là một cách thực hành tốt

Sửa đổi và xóa một đối tượng

Bạn có thể sửa đổi một đối tượng như thế này

Person.age=20

Bạn có thể xóa một đối tượng bằng cách sử dụng từ khóa del

Ví dụ,

del objectName

Hãy tham gia khóa Đào tạo Python định hướng công việc chuyên sâu này tại Hyderabad ngay bây giờ

Các loại lớp trong Python

Có nhiều loại lớp trong Python, trong đó một số loại như sau

  • Lớp trừu tượng Python
  • Lớp bê tông Python
  • Python một phần lớp

Tìm hiểu và thành thạo các Lớp trong Python thông qua Khóa học Python trực tuyến của chúng tôi

Lớp trừu tượng là lớp chứa một hoặc nhiều phương thức trừu tượng. Thuật ngữ “phương thức trừu tượng” dùng để chỉ một phương thức có khai báo nhưng không có triển khai. Khi làm việc với một cơ sở mã lớn, có thể khó nhớ tất cả các lớp. Đó là khi một lớp Tóm tắt Python có thể được sử dụng. Python, không giống như hầu hết các ngôn ngữ cấp cao, không có lớp trừu tượng theo mặc định

Một lớp có thể được định nghĩa là một lớp trừu tượng bằng cách sử dụng abc. ABC và một phương thức có thể được định nghĩa là một phương thức trừu tượng bằng cách sử dụng abc. phương pháp trừu tượng. Viết tắt của lớp cơ sở trừu tượng là ABC. Mô-đun ABC, cung cấp nền tảng để xây dựng các lớp Cơ sở Trừu tượng, phải được nhập. Mô-đun ABC hoạt động bằng cách trang trí các phương thức của lớp cơ sở dưới dạng trừu tượng. Nó cài đặt các lớp cụ thể dưới dạng triển khai của cơ sở trừu tượng

Ví dụ

From abc import ABC, abstractmethod
Class AbstractClassName(ABC):
@abstract method
def abstract_method_name(self):
Pass

Các lớp cụ thể chỉ có các phương thức cụ thể nhưng các lớp trừu tượng có thể có cả phương thức cụ thể và phương thức trừu tượng. Lớp cụ thể thực hiện các phương thức trừu tượng, nhưng lớp cơ sở trừu tượng cũng có thể làm như vậy bằng cách khởi tạo các phương thức thông qua super()

Lớp một phần là một trong những lớp python. Chúng tôi có thể sử dụng nó để phát triển một chức năng mới chỉ áp dụng một tập hợp con các câu lệnh và từ khóa mà bạn chuyển cho nó. Bạn có thể sử dụng một phần để cố định một đoạn câu lệnh và/hoặc từ khóa của hàm, dẫn đến việc tạo một đối tượng mới. Chúng ta có thể sử dụng mô-đun Funcools để triển khai lớp này

Tăng 100%

Nắm vững các kỹ năng được yêu cầu nhiều nhất ngay bây giờ

Đối tượng tệp Python

Đối tượng tệp Python cung cấp quyền truy cập và thao tác tệp thông qua các phương thức và thuộc tính. Chúng ta có thể đọc và ghi bất kỳ tệp nào bằng cách sử dụng các đối tượng tệp

Python tạo một đối tượng tệp bất cứ khi nào chúng tôi mở tệp để thực hiện bất kỳ thao tác nào trên tệp đó. Chúng ta có thể sử dụng các hàm có sẵn của Python, chẳng hạn như open() và os. popen, để tạo một đối tượng tệp ()

Khi một đối tượng tệp bị lạm dụng hoặc một hành động tệp không thành công do sự cố liên quan đến I/O, ngoại lệ IOError sẽ được đưa ra

Một đối tượng tệp có thể được phân thành ba loại, tệp văn bản, tệp nhị phân và tệp thô

Hàm The_init_() trong Python

Trong các lớp python, phương thức “__init__” được dành riêng. Nó tự động được gọi khi bạn tạo một đối tượng bằng cách sử dụng một lớp và được sử dụng để khởi tạo các biến của lớp. Nó tương đương với một hàm tạo

  • Giống như bất kỳ phương thức nào khác, phương thức init bắt đầu bằng từ khóa “def”
  • “self” là tham số đầu tiên trong phương thức này giống như bất kỳ phương thức nào khác mặc dù trong trường hợp của init, “self” đề cập đến một đối tượng mới được tạo không giống như các phương thức khác, nơi nó đề cập đến đối tượng hoặc thể hiện hiện tại được liên kết với phương thức cụ thể đó
  • Các thông số bổ sung có thể được thêm vào

Ví dụ sau minh họa cách sử dụng hàm __init__()

________số 8_______

Trong ví dụ trên, hàm init hoạt động như một hàm tạo và được gọi tự động ngay khi câu lệnh 'object1 = IntellipaatClass(“Python”)' được thực thi. Vì nó là một hàm bên trong một lớp, nên đối số đầu tiên được truyền vào nó là chính đối tượng được bắt trong tham số 'self'. Tham số thứ hai, tôi. e. tất nhiên, được sử dụng để bắt đối số thứ hai được truyền qua đối tượng, đó là 'Python'. Và sau đó, chúng ta đã khởi tạo biến course bên trong hàm init. Hơn nữa, chúng tôi đã xác định một chức năng khác có tên là 'hiển thị' để in giá trị của biến. Chức năng này được gọi bằng cách sử dụng object1

Ghi chú. Đừng quên cung cấp thụt lề thích hợp trong đoạn mã trên

Kế thừa Python và các loại của nó

Là một ngôn ngữ lập trình hướng đối tượng, Python cũng sử dụng tính kế thừa. Khả năng của một lớp kế thừa các thuộc tính của một lớp khác được gọi là tính kế thừa. Lớp kế thừa các thuộc tính thường được gọi là lớp con hoặc lớp dẫn xuất. Và, lớp đang được kế thừa được gọi là lớp cha hoặc lớp cơ sở

Kế thừa cung cấp khả năng sử dụng lại mã vì chúng ta có thể sử dụng một lớp hiện có và các thuộc tính của nó thay vì tạo một lớp từ đầu với cùng các thuộc tính

class derived_Class_Name (base class):

Ví dụ

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
0

đầu ra

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
1

Có nhiều hình thức kế thừa khác nhau tùy thuộc vào cấu trúc kế thừa diễn ra giữa lớp dẫn xuất và lớp cơ sở trong Python. Hãy thảo luận về từng người trong số họ

  1. thừa kế duy nhất. Kiểu kế thừa khi một lớp chỉ kế thừa một lớp cơ sở được gọi là kế thừa đơn lẻ, như chúng ta đã thấy trong ví dụ trên
  2. đa thừa kế. Khi một lớp kế thừa nhiều lớp cơ sở, nó được gọi là đa kế thừa. Không giống như các ngôn ngữ như Java, Python hỗ trợ đầy đủ đa kế thừa. Tất cả các lớp cơ sở được đề cập bên trong ngoặc dưới dạng danh sách được phân tách bằng dấu phẩy

Ví dụ

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
2

đầu ra

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
3
  1. kế thừa đa cấp. Khi một lớp kế thừa một lớp cơ sở và sau đó một lớp khác kế thừa lớp dẫn xuất trước đó, tạo thành cấu trúc lớp 'cha, con và cháu', thì nó được gọi là kế thừa đa cấp
class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
4

đầu ra

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
5
  1. Kế thừa thứ bậc. Khi chỉ có một lớp cơ sở được kế thừa bởi nhiều lớp dẫn xuất, nó được gọi là kế thừa phân cấp
  2. thừa kế lai. Thừa kế lai là khi có sự kết hợp của các kiểu thừa kế nêu trên, tức là sự pha trộn của nhiều kiểu thừa kế

Chúng tôi có Khóa học Python chuyên nghiệp hoàn hảo ở Bangalore dành cho bạn

Thuộc tính riêng của một lớp trong Python

Trong khi thực hiện kế thừa, có một số trường hợp chúng ta không muốn tất cả các thuộc tính của một lớp được kế thừa bởi lớp dẫn xuất. Trong những trường hợp đó, chúng ta có thể biến các thuộc tính đó thành thành viên riêng của lớp cơ sở. Chúng ta có thể làm điều này một cách đơn giản bằng cách thêm hai dấu gạch dưới (__) trước tên biến

Ví dụ

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
6

Khi khối mã trên được thực thi, nó sẽ báo lỗi sau

đầu ra

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
7

Vì y là một biến riêng trong lớp cơ sở nên lớp dẫn xuất không thể truy cập nó

Đa hình nghĩa là có nhiều dạng. Tính đa hình cho phép sử dụng một giao diện duy nhất với các loại dữ liệu Python khác nhau, các lớp khác nhau hoặc thậm chí một số lượng đầu vào khác nhau

Đa hình có hai loại

  • Đa hình thời gian chạy
  • Đa hình thời gian biên dịch

Đa hình thời gian chạy

Đa hình thời gian chạy là quá trình trong đó lời gọi đến một phương thức bị ghi đè được giải quyết trong thời gian chạy. Trong Python, chúng tôi triển khai đa hình thời gian chạy thông qua ghi đè phương thức

Ghi đè phương thức cho phép chúng ta thay đổi việc triển khai một phương thức trong lớp con được định nghĩa trong lớp cha

Để ghi đè một phương thức, các điều kiện sau phải được đáp ứng

  • Nên có sự kế thừa. Lớp con phải được dẫn xuất từ ​​lớp cha
  • Phương thức mà chúng ta đang định nghĩa lại phải có cùng số lượng tham số như phương thức trong lớp cha

Ví dụ

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
8

đầu ra

class IntellipaatClass:
a = 5
def function1(self):
print(‘Welcome to Intellipaat’)
#accessing attributes using the class object of same name
IntellipaatClass.function(1)
print(IntellipaatClass.a)
9

Đa hình thời gian biên dịch

Đa hình thời gian biên dịch là quá trình trong đó lệnh gọi phương thức được giải quyết tại thời điểm biên dịch. Chúng tôi triển khai đa hình thời gian biên dịch thông qua quá tải phương thức

Bằng cách sử dụng nạp chồng phương thức, bạn có thể triển khai cùng chức năng của lớp với các tham số khác nhau. Python không hỗ trợ đa hình thời gian biên dịch nhưng có một cách giải quyết như ví dụ bên dưới

Ví dụ

Welcome to Intellipaat
5 
0

đầu ra

Welcome to Intellipaat
5 
1

Các đối tượng có thể thay đổi và không thể thay đổi trong Python

Một đối tượng có thể thay đổi là một đối tượng có thể thay đổi có thể được sửa đổi sau khi nó được tạo. Danh sách, dict, set và mảng byte đều là các đối tượng có thể thay đổi

Một đối tượng bất biến là một đối tượng mà trạng thái của nó không bao giờ có thể thay đổi được sau khi nó được tạo ra. Int, float, phức tạp, chuỗi Python, tuple, bộ đóng băng và byte là bất biến

Python xử lý các đối tượng có thể thay đổi và không thể thay đổi theo những cách khác nhau. Các đối tượng có thể thay đổi được sử dụng rất nhiều trong các tình huống cần thay đổi kích thước đối tượng. Các đối tượng bất biến được sử dụng khi bạn muốn một đối tượng bạn đã tạo luôn giữ nguyên như khi được tạo

Đến đây, chúng ta sẽ kết thúc mô-đun này trong Hướng dẫn Python. Bây giờ, nếu bạn muốn biết python được sử dụng như thế nào cho khoa học dữ liệu, bạn có thể xem qua blog này về hướng dẫn Khoa học dữ liệu Python

Hơn nữa, hãy xem các ưu đãi của chúng tôi cho Khóa học cấp chứng chỉ Python và cũng tham khảo các câu hỏi phỏng vấn Python thịnh hành do các chuyên gia trong ngành chuẩn bị

Một hàm có thể là một đối tượng trong Python không?

Đầu ra. Có, hàm python là đối tượng đầy đủ . Chúng có thể có các thuộc tính và phương thức như các đối tượng. Các hàm có thể có các biến dữ liệu và thậm chí các hàm được viết bên trong chúng.

Hàm nào dùng để tạo đối tượng trong Python?

Trong các lớp python, phương thức “ __init__ ” được bảo lưu. Nó tự động được gọi khi bạn tạo một đối tượng bằng cách sử dụng một lớp và được sử dụng để khởi tạo các biến của lớp.

Bạn có thể chuyển một đối tượng tới một hàm trong Python không?

Bạn có thể truyền đối tượng làm đối số cho hàm theo cách thông thường . Đây là một chức năng đơn giản được gọi là khoảng cách liên quan đến các đối tượng Điểm mới của chúng tôi. Công việc của chức năng này là tìm ra khoảng cách giữa hai điểm.

Chức năng như đối tượng trong Python có nghĩa là gì?

Trong Python, các hàm hoạt động giống như bất kỳ đối tượng nào khác, chẳng hạn như một int hoặc một danh sách . Điều đó có nghĩa là bạn có thể sử dụng các hàm làm đối số cho các hàm khác, lưu trữ các hàm dưới dạng giá trị từ điển hoặc trả về một hàm từ một hàm khác. Điều này dẫn đến nhiều cách mạnh mẽ để sử dụng các chức năng.