Python là một ngôn ngữ lập trình hướng đối tượng. Điều này có nghĩa là hầu hết tất cả các mã được triển khai bằng cách sử dụng một cấu trúc đặc biệt được gọi là các lớp. Một lớp là một mẫu mã để tạo các đối tượng
Sau khi đọc bài viết này, bạn sẽ học được
- Lớp và đối tượng trong Python là gì
- Các thuộc tính và phương thức của lớp
- Tạo và truy cập các thuộc tính đối tượng
- Sửa đổi và xóa một đối tượng
Mục lục
Lớp và đối tượng trong Python là gì?
- Tầng lớp. Lớp là cấu trúc dữ liệu do người dùng định nghĩa, liên kết các thành viên dữ liệu và phương thức thành một đơn vị. Lớp là một kế hoạch chi tiết hoặc mẫu mã để tạo đối tượng. Sử dụng một lớp, bạn có thể tạo bao nhiêu đối tượng tùy thích
- Mục tiêu. Một đối tượng là một thể hiện của một lớp. Nó là tập hợp các thuộc tính [biến] và phương thức. Chúng tôi sử dụng đối tượng của một lớp để thực hiện các hành động
Đối tượng có hai đặc điểm. Chúng có các trạng thái và hành vi [đối tượng có các thuộc tính và phương thức gắn liền với nó] Các thuộc tính biểu thị trạng thái của nó và các phương thức biểu thị hành vi của nó. Sử dụng các phương thức của nó, chúng ta có thể sửa đổi trạng thái của nó
Nói tóm lại, Mọi đối tượng đều có thuộc tính sau
- Xác thực. Mỗi đối tượng phải được xác định duy nhất
- Tiểu bang. Một đối tượng có thuộc tính thể hiện trạng thái của đối tượng, đồng thời nó cũng phản ánh thuộc tính của đối tượng
- Cư xử. Một đối tượng có các phương thức đại diện cho hành vi của nó
Python là ngôn ngữ Lập trình hướng đối tượng, vì vậy mọi thứ trong Python đều được coi là đối tượng. Một đối tượng là một thực thể thực tế. Nó là tập hợp các dữ liệu khác nhau và các chức năng hoạt động trên những dữ liệu đó
Ví dụ: Nếu chúng ta thiết kế một lớp dựa trên các trạng thái và hành vi của một Người, thì các Trạng thái có thể được biểu diễn dưới dạng các biến đối tượng và các hành vi dưới dạng các phương thức của lớp
Một ví dụ thực tế về lớp và đối tượng
Tầng lớp. Người
- Tiểu bang. Tên, Giới tính, Nghề nghiệp
- Cư xử. Làm việc, Học tập
Sử dụng lớp trên, chúng ta có thể tạo nhiều đối tượng mô tả các trạng thái và hành vi khác nhau
đối tượng 1. Jessa
- Tiểu bang
- Tên. Jessa
- giới tính. Giống cái
- Chuyên nghiệp. Kỹ sư phần mềm
- Cư xử
- Làm việc. Cô đang làm nhân viên phát triển phần mềm tại Công ty ABC
- Nghiên cứu. Cô ấy học 2 giờ một ngày
đối tượng 2. Jon
- Tiểu bang
- Tên. Jon
- giới tính. Nam giới
- Chuyên nghiệp. Bác sĩ
- Cư xử
- Làm việc. Anh ấy đang làm việc như một bác sĩ
- Nghiên cứu. Anh ấy học 5 giờ một ngày
Như bạn có thể thấy, Jessa là nữ, và cô ấy làm Kỹ sư phần mềm. Mặt khác, Jon là nam và anh ấy là luật sư. Ở đây, cả hai đối tượng được tạo từ cùng một lớp, nhưng chúng có trạng thái và hành vi khác nhau
Tạo một lớp trong Python
Trong Python, lớp được định nghĩa bằng cách sử dụng từ khóa
class Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
6. Cú pháp để tạo một lớp được đưa ra dưới đâycú pháp
class class_name:
'''This is a docstring. I have created a new class'''
.
.
7. Đó là tên lớpclass Person: def __init__[self, name, sex, profession]: # data members [instance variables] self.name = name self.sex = sex self.profession = profession # Behavior [instance methods] def show[self]: print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession] # Behavior [instance methods] def work[self]: print[self.name, 'working as a', self.profession]
8. Nó là chuỗi đầu tiên bên trong lớp và có một mô tả ngắn gọn về lớp. Mặc dù không bắt buộc nhưng điều này rất được khuyến khíchclass Person: def __init__[self, name, sex, profession]: # data members [instance variables] self.name = name self.sex = sex self.profession = profession # Behavior [instance methods] def show[self]: print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession] # Behavior [instance methods] def work[self]: print[self.name, 'working as a', self.profession]
9. Thuộc tính và phương thứcclass Person: def __init__[self, name, sex, profession]: # data members [instance variables] self.name = name self.sex = sex self.profession = profession # Behavior [instance methods] def show[self]: print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession] # Behavior [instance methods] def work[self]: print[self.name, 'working as a', self.profession]
Thí dụ. Định nghĩa một lớp trong Python
Trong ví dụ này, chúng tôi đang tạo một Lớp người với các biến thể hiện tên, giới tính và nghề nghiệp
class Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
Tạo đối tượng của một lớp
Một đối tượng là cần thiết để làm việc với các thuộc tính của lớp. Đối tượng được tạo bằng tên lớp. Khi chúng ta tạo một đối tượng của lớp, nó được gọi là khởi tạo. Đối tượng còn được gọi là thể hiện của một lớp
Hàm tạo là một phương thức đặc biệt được sử dụng để tạo và khởi tạo một đối tượng của một lớp. Phương thức này được định nghĩa trong lớp
Trong Python, Tạo đối tượng được chia thành hai phần trong Tạo đối tượng và Khởi tạo đối tượng
- Bên trong,
0 là phương thức tạo đối tượng= []
- Và, sử dụng phương thức
1, chúng ta có thể triển khai hàm tạo để khởi tạo đối tượng= []
Đọc thêm. Constructor trong Python
cú pháp
= []
Dưới đây là mã để tạo đối tượng của lớp Person
jessa = Person['Jessa', 'Female', 'Software Engineer']
ví dụ hoàn chỉnh
class Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
# create object of a class
jessa = Person['Jessa', 'Female', 'Software Engineer']
# call methods
jessa.show[]
jessa.work[]
đầu ra
Name: Jessa Sex: Female Profession: Software Engineer Jessa working as a Software Engineer
Thuộc tính lớp
Khi chúng ta thiết kế một lớp, chúng ta sử dụng các biến thể hiện và biến lớp
Trong Class, các thuộc tính có thể được định nghĩa thành hai phần
- Biến thể hiện. Các biến thể hiện là các thuộc tính gắn liền với một thể hiện của một lớp. Chúng tôi định nghĩa các biến thể hiện trong hàm tạo [ phương thức
1 của một lớp]= []
- Biến lớp. Biến lớp là một biến được khai báo bên trong lớp, nhưng bên ngoài bất kỳ phương thức thực thể nào hoặc phương thức
1= []
Các đối tượng không chia sẻ các thuộc tính thể hiện. Thay vào đó, mọi đối tượng đều có bản sao của thuộc tính thể hiện và là duy nhất cho từng đối tượng
Tất cả các phiên bản của một lớp chia sẻ các biến lớp. Tuy nhiên, không giống như các biến thể hiện, giá trị của một biến lớp không thay đổi từ đối tượng này sang đối tượng khác
Chỉ một bản sao của biến tĩnh sẽ được tạo và chia sẻ giữa tất cả các đối tượng của lớp
Truy cập thuộc tính và gán giá trị
- Một thuộc tính thể hiện có thể được truy cập hoặc sửa đổi bằng cách sử dụng ký hiệu dấu chấm.
4= []
- Một biến lớp được truy cập hoặc sửa đổi bằng cách sử dụng tên lớp
Thí dụ
class Student:
# class variables
school_name = 'ABC School'
# constructor
def __init__[self, name, age]:
# instance variables
self.name = name
self.age = age
s1 = Student["Harry", 12]
# access instance variables
print['Student:', s1.name, s1.age]
# access class variable
print['School name:', Student.school_name]
# Modify instance variables
s1.name = 'Jessa'
s1.age = 14
print['Student:', s1.name, s1.age]
# Modify class variables
Student.school_name = 'XYZ School'
print['School name:', Student.school_name]
đầu ra
Student: Harry 12 School name: ABC School Student: Jessa 14 School name: XYZ School
phương pháp lớp
Trong Lập trình hướng đối tượng, Inside a Class, chúng ta có thể định nghĩa ba loại phương thức sau
- phương thức sơ thẩm. Được sử dụng để truy cập hoặc sửa đổi trạng thái đối tượng. Nếu chúng ta sử dụng các biến thể hiện trong một phương thức, thì các phương thức đó được gọi là phương thức thể hiện
- phương pháp lớp. Được sử dụng để truy cập hoặc sửa đổi trạng thái lớp. Trong quá trình triển khai phương thức, nếu chúng ta chỉ sử dụng các biến lớp, thì loại phương thức đó chúng ta nên khai báo là phương thức lớp
- phương pháp tĩnh. Đó là một phương pháp tiện ích chung thực hiện một nhiệm vụ trong sự cô lập. Bên trong phương thức này, chúng tôi không sử dụng biến đối tượng hoặc lớp vì phương thức tĩnh này không có quyền truy cập vào các thuộc tính của lớp
Các phương thức sơ thẩm hoạt động ở cấp độ cá thể [cấp độ đối tượng]. Ví dụ: nếu chúng ta có hai đối tượng được tạo từ lớp sinh viên, chúng có thể khác tên, điểm, số điểm danh, v.v. Sử dụng các phương thức thể hiện, chúng ta có thể truy cập và sửa đổi các biến thể hiện
Một phương thức của lớp được liên kết với lớp chứ không phải đối tượng của lớp. Nó chỉ có thể truy cập các biến lớp
Đọc thêm. Phương thức lớp Python so với. Phương pháp tĩnh vs. Phương thức sơ thẩm
Thí dụ. Định nghĩa và gọi phương thức cá thể và phương thức lớp
# class methods demo
class Student:
# class variable
school_name = 'ABC School'
# constructor
def __init__[self, name, age]:
# instance variables
self.name = name
self.age = age
# instance method
def show[self]:
# access instance variables and class variables
print['Student:', self.name, self.age, Student.school_name]
# instance method
def change_age[self, new_age]:
# modify instance variable
self.age = new_age
# class method
@classmethod
def modify_school_name[cls, new_name]:
# modify class variable
cls.school_name = new_name
s1 = Student["Harry", 12]
# call instance methods
s1.show[]
s1.change_age[14]
# call class method
Student.modify_school_name['XYZ School']
# call instance methods
s1.show[]
đầu ra
Student: Harry 12 ABC School Student: Harry 14 XYZ School
Quy ước đặt tên lớp
Quy ước đặt tên là cần thiết trong bất kỳ ngôn ngữ lập trình nào để dễ đọc hơn. Nếu chúng ta đặt một cái tên hợp lý, nó sẽ tiết kiệm thời gian và năng lượng của chúng ta sau này. Viết mã có thể đọc được là một trong những nguyên tắc hướng dẫn của ngôn ngữ Python
Chúng ta nên tuân theo các quy tắc cụ thể trong khi quyết định tên cho lớp trong Python
- Quy tắc 1. Tên lớp phải tuân theo quy ước UpperCaseCamelCase
- Quy tắc-2. Các lớp ngoại lệ phải kết thúc bằng “Lỗi“
- Quy tắc-3. Nếu một lớp có thể gọi được [Gọi lớp từ đâu đó], trong trường hợp đó, chúng ta có thể đặt tên lớp giống như một hàm
- Quy tắc-4. Các lớp dựng sẵn của Python thường là các từ viết thường
= []
5 Phát biểu trong lớp
= []
Trong Python, pass là một câu lệnh null. Do đó, không có gì xảy ra khi câu lệnh pass được thực thi
Câu lệnh
= []
5 được sử dụng để có một khối trống trong mã vì mã trống không được phép trong các vòng lặp, định nghĩa hàm, định nghĩa lớp. Như vậy, câu lệnh = []
5 sẽ dẫn đến kết quả là không có thao tác nào [NOP]. Nói chung, chúng tôi sử dụng nó như một trình giữ chỗ khi chúng tôi không biết viết mã nào hoặc thêm mã nào trong bản phát hành trong tương laiVí dụ: giả sử chúng ta có một lớp chưa được triển khai, nhưng chúng ta muốn triển khai nó trong tương lai và chúng không thể có phần thân trống vì trình thông dịch đưa ra lỗi. Vì vậy, hãy sử dụng câu lệnh
= []
5 để xây dựng một phần thân không làm gì cảThí dụ
class Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
0Trong ví dụ trên, chúng ta đã định nghĩa lớp không có phần thân. Để tránh lỗi trong khi thực hiện nó, chúng tôi đã thêm câu lệnh
= []
5 vào phần thân của lớpThuộc tính đối tượng
Mỗi đối tượng có thuộc tính với nó. Nói cách khác, chúng ta có thể nói rằng thuộc tính đối tượng là sự kết hợp giữa tên và giá trị
Ví dụ: một chiếc ô tô là một đối tượng và các thuộc tính của nó là màu xe, cửa sổ trời, giá cả, nhà sản xuất, kiểu dáng, động cơ, v.v. Ở đây, màu sắc là tên và màu đỏ là giá trị. Thuộc tính đối tượng không là gì ngoài các biến thể hiện
Sửa đổi thuộc tính đối tượng
Mỗi đối tượng có các thuộc tính liên kết với chúng. Chúng ta có thể thiết lập hoặc sửa đổi các thuộc tính của đối tượng sau khi khởi tạo đối tượng bằng cách gọi trực tiếp thuộc tính đó bằng toán tử dấu chấm
class Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
1Thí dụ
class Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
2Xóa thuộc tính đối tượng
Chúng ta có thể xóa thuộc tính đối tượng bằng cách sử dụng từ khóa
jessa = Person['Jessa', 'Female', 'Software Engineer']
0. Sau khi xóa đi nếu chúng ta thử truy cập sẽ bị báo lỗiclass Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
3Trong ví dụ trên, Như chúng ta thấy, tên thuộc tính đã bị xóa khi chúng ta cố gắng in hoặc truy cập thuộc tính đó sẽ nhận được thông báo lỗi
Xóa đối tượng
Trong Python, chúng ta cũng có thể xóa đối tượng bằng cách sử dụng từ khóa
jessa = Person['Jessa', 'Female', 'Software Engineer']
0. Một đối tượng có thể là bất cứ thứ gì như đối tượng lớp, jessa = Person['Jessa', 'Female', 'Software Engineer']
2, jessa = Person['Jessa', 'Female', 'Software Engineer']
3, jessa = Person['Jessa', 'Female', 'Software Engineer']
4, v.v.cú pháp
class Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
4Thí dụ. Đang xóa đối tượng
class Person:
def __init__[self, name, sex, profession]:
# data members [instance variables]
self.name = name
self.sex = sex
self.profession = profession
# Behavior [instance methods]
def show[self]:
print['Name:', self.name, 'Sex:', self.sex, 'Profession:', self.profession]
# Behavior [instance methods]
def work[self]:
print[self.name, 'working as a', self.profession]
5Trong ví dụ trên, chúng ta tạo đối tượng
jessa = Person['Jessa', 'Female', 'Software Engineer']
5 của lớp jessa = Person['Jessa', 'Female', 'Software Engineer']
6. Sau đó, sử dụng từ khóa jessa = Person['Jessa', 'Female', 'Software Engineer']
0, chúng tôi đã xóa đối tượng đó