Python là một ngôn ngữ hoàn toàn hướng đối tượng. Bạn đã làm việc với các lớp và đối tượng ngay từ đầu của các hướng dẫn này. Mỗi phần tử trong chương trình Python là một đối tượng của một lớp. Một số, chuỗi, danh sách, từ điển, v.v. , được sử dụng trong một chương trình là một đối tượng của lớp dựng sẵn tương ứng. Bạn có thể truy xuất tên lớp của các biến hoặc đối tượng bằng phương thức type[], như hình bên dưới
Thí dụ. Các lớp tích hợp Python
Sao chép>>> num=20
>>> type[num]
>>> s="Python"
>>> type[s]
Xác định một lớp
Một lớp trong Python có thể được định nghĩa bằng từ khóa
class Student:
pass
8class :
.
.
Theo cú pháp trên, một lớp được xác định bằng cách sử dụng từ khóa
class Student:
pass
8 theo sau là tên lớp và toán tử std = Student[]
0 sau tên lớp, điều này cho phép bạn tiếp tục ở dòng thụt lề tiếp theo để xác định các thành viên của lớp. Sau đây là các thành viên trong lớpMột lớp cũng có thể được định nghĩa mà không cần bất kỳ thành viên nào. Ví dụ sau định nghĩa một lớp rỗng sử dụng từ khóa
std = Student[]
1Thí dụ. Xác định lớp Python
Sao chépclass Student:
pass
Khởi tạo lớp sử dụng ký hiệu hàm. Để tạo một đối tượng của lớp, chỉ cần gọi một lớp giống như một hàm không tham số trả về một đối tượng mới của lớp, như hình bên dưới
Thí dụ. Tạo một đối tượng của một lớp
Sao chépstd = Student[]
Ở trên,
std = Student[]
2 trả về một đối tượng của lớp std = Student[]
3, được gán cho một biến cục bộ std = Student[]
4. Lớp std = Student[]
3 là một lớp trống vì nó không chứa bất kỳ thành viên nàoThuộc tính lớp
Thuộc tính lớp là các biến được định nghĩa trực tiếp trong lớp được chia sẻ bởi tất cả các đối tượng của lớp. Các thuộc tính của lớp có thể được truy cập bằng cách sử dụng tên lớp cũng như sử dụng các đối tượng
Thí dụ. Xác định lớp Python
Sao chépclass Student:
schoolName = 'XYZ School'
Ở trên,
std = Student[]
6 là một thuộc tính lớp được định nghĩa bên trong một lớp. Giá trị của std = Student[]
6 sẽ giữ nguyên cho tất cả các đối tượng trừ khi được sửa đổi rõ ràngThí dụ. Xác định lớp Python
Sao chép>>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
Như bạn có thể thấy, một thuộc tính lớp được truy cập bởi
std = Student[]
8 cũng như std = Student[]
9. Thay đổi giá trị của thuộc tính lớp bằng tên lớp sẽ thay đổi nó trên tất cả các phiên bản. Tuy nhiên, việc thay đổi giá trị thuộc tính lớp bằng cách sử dụng phiên bản sẽ không ảnh hưởng đến các phiên bản hoặc lớp khácThí dụ. Xác định lớp Python
Sao chép>>> Student.schoolName = 'ABC School' # change attribute value using class name
>>> std = Student[]
>>> std.schoolName
'ABC School' # value changed for all instances
>>> std.schoolName = 'My School' # changing instance's attribute
>>> std.schoolName
'My School'
>>> Student.schoolName # instance level change not reflectd to class attribute
'ABC School'
>>> std2 = Student[]
>>> std2.schoolName
'ABC School'
Ví dụ sau minh họa việc sử dụng thuộc tính lớp
class Student:
schoolName = 'XYZ School'
0Thí dụ. Sinh viên. py
Sao chépclass Student:
count = 0
def __init__[self]:
Student.count += 1
Trong ví dụ trên,
class Student:
schoolName = 'XYZ School'
0 là một thuộc tính trong lớp Sinh viên. Bất cứ khi nào một đối tượng mới được tạo, giá trị của class Student:
schoolName = 'XYZ School'
0 được tăng thêm 1. Bây giờ bạn có thể truy cập thuộc tính class Student:
schoolName = 'XYZ School'
0 sau khi tạo các đối tượng, như hình bên dướiThí dụ
Sao chép>>> std1=Student[]
>>> Student.count
1
>>> std2 = Student[]
>>> Student.count
2
Hàm tạo
Trong Python, phương thức khởi tạo được gọi tự động bất cứ khi nào một đối tượng mới của một lớp được khởi tạo, giống như các hàm tạo trong C# hoặc Java. Hàm tạo phải có một tên đặc biệt là
class Student:
schoolName = 'XYZ School'
4 và một tham số đặc biệt có tên là class Student:
schoolName = 'XYZ School'
5Ghi chú
Tham số đầu tiên của mỗi phương thức trong một lớp phải là
class Student:
schoolName = 'XYZ School'
5, tham chiếu đến đối tượng gọi. Tuy nhiên, bạn có thể đặt bất kỳ tên nào cho tham số đầu tiên, không nhất thiết phải là class Student:
schoolName = 'XYZ School'
5Ví dụ sau định nghĩa một constructor
Thí dụ. Hàm tạo
Sao chépclass Student:
def __init__[self]: # constructor method
print['Constructor invoked']
Bây giờ, bất cứ khi nào bạn tạo một đối tượng của lớp
std = Student[]
3, phương thức khởi tạo của lớp class Student:
schoolName = 'XYZ School'
4 sẽ được gọi, như hình bên dướiThí dụ. Constructor Call khi tạo đối tượng
Sao chépclass :
.
.
0Hàm tạo trong Python được sử dụng để xác định các thuộc tính của một thể hiện và gán giá trị cho chúng
Thuộc tính sơ thẩm
Thuộc tính thể hiện là thuộc tính hoặc thuộc tính gắn liền với một thể hiện của một lớp. Thuộc tính thể hiện được xác định trong hàm tạo
Ví dụ sau định nghĩa các thuộc tính thể hiện
>>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
0 và >>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
1 trong hàm tạoThí dụ. Thuộc tính sơ thẩm
Sao chépclass :
.
.
1Một thuộc tính thể hiện có thể được truy cập bằng ký hiệu dấu chấm.
>>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
2, như hình bên dướiThí dụ
Sao chépclass :
.
.
2Bạn có thể đặt giá trị của các thuộc tính bằng cách sử dụng ký hiệu dấu chấm, như hình bên dưới
Thí dụ
Sao chépclass :
.
.
3Bạn có thể chỉ định giá trị của các thuộc tính thể hiện thông qua hàm tạo. Hàm tạo sau bao gồm các tham số tên và tuổi, ngoại trừ tham số
class Student:
schoolName = 'XYZ School'
5Thí dụ. Đặt giá trị thuộc tính
Sao chépclass :
.
.
4Giờ đây, bạn có thể chỉ định các giá trị trong khi tạo phiên bản, như minh họa bên dưới
Thí dụ. Truyền các giá trị thuộc tính của Instance trong Constructor
Sao chépclass :
.
.
5Ghi chú
Bạn không cần phải chỉ định giá trị của tham số
class Student:
schoolName = 'XYZ School'
5. Nó sẽ được chỉ định nội bộ trong PythonBạn cũng có thể đặt giá trị mặc định cho thuộc tính cá thể. Đoạn mã sau đặt các giá trị mặc định của các tham số hàm tạo. Vì vậy, nếu các giá trị không được cung cấp khi tạo một đối tượng, các giá trị sẽ được gán sau
Thí dụ. Đặt giá trị mặc định của thuộc tính
Sao chépclass :
.
.
6Bây giờ, bạn có thể tạo một đối tượng với các giá trị mặc định, như hình bên dưới
Thí dụ. Giá trị mặc định của thuộc tính phiên bản
Sao chépclass :
.
.
7Truy cập thuộc tính lớp so với thuộc tính cá thể trong Python để biết thêm thông tin
Thuộc tính lớp
Trong Python, một thuộc tính trong lớp có thể được định nghĩa bằng hàm property[]
Phương thức
>>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
5 trong Python cung cấp giao diện cho các thuộc tính thể hiện. Nó đóng gói các thuộc tính thể hiện và cung cấp một thuộc tính, giống như Java và C#Phương thức
>>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
5 lấy các phương thức get, set và delete làm đối số và trả về một đối tượng của lớp >>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
7Ví dụ sau minh họa cách tạo một thuộc tính trong Python bằng cách sử dụng hàm
>>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
5Thí dụ. tài sản[]
Sao chépclass :
.
.
8Trong ví dụ trên,
>>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
9 trả về đối tượng thuộc tính và gán nó cho >>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
0. Do đó, thuộc tính >>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
0 ẩn dấu >>> Student.schoolName = 'ABC School' # change attribute value using class name
>>> std = Student[]
>>> std.schoolName
'ABC School' # value changed for all instances
>>> std.schoolName = 'My School' # changing instance's attribute
>>> std.schoolName
'My School'
>>> Student.schoolName # instance level change not reflectd to class attribute
'ABC School'
>>> std2 = Student[]
>>> std2.schoolName
'ABC School'
2. Thuộc tính >>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
0 được truy cập trực tiếp, nhưng bên trong nó sẽ gọi phương thức >>> Student.schoolName = 'ABC School' # change attribute value using class name
>>> std = Student[]
>>> std.schoolName
'ABC School' # value changed for all instances
>>> std.schoolName = 'My School' # changing instance's attribute
>>> std.schoolName
'My School'
>>> Student.schoolName # instance level change not reflectd to class attribute
'ABC School'
>>> std2 = Student[]
>>> std2.schoolName
'ABC School'
4 hoặc >>> Student.schoolName = 'ABC School' # change attribute value using class name
>>> std = Student[]
>>> std.schoolName
'ABC School' # value changed for all instances
>>> std.schoolName = 'My School' # changing instance's attribute
>>> std.schoolName
'My School'
>>> Student.schoolName # instance level change not reflectd to class attribute
'ABC School'
>>> std2 = Student[]
>>> std2.schoolName
'ABC School'
5, như minh họa bên dướiThí dụ. tài sản[]
Sao chépclass :
.
.
9Bạn nên sử dụng trình trang trí thuộc tính thay vì phương thức
>>> Student.schoolName
'XYZ School'
>>> std = Student[]
>>> std.schoolName
'XYZ School'
5phương pháp lớp
Bạn có thể định nghĩa bao nhiêu phương thức tùy ý trong một lớp bằng cách sử dụng từ khóa
>>> Student.schoolName = 'ABC School' # change attribute value using class name
>>> std = Student[]
>>> std.schoolName
'ABC School' # value changed for all instances
>>> std.schoolName = 'My School' # changing instance's attribute
>>> std.schoolName
'My School'
>>> Student.schoolName # instance level change not reflectd to class attribute
'ABC School'
>>> std2 = Student[]
>>> std2.schoolName
'ABC School'
7. Mỗi phương thức phải có tham số đầu tiên, thường được đặt tên là class Student:
schoolName = 'XYZ School'
5, tham chiếu đến phiên bản gọiThí dụ. phương pháp lớp
Sao chépclass Student:
pass
0>>> Student.schoolName = 'ABC School' # change attribute value using class name
>>> std = Student[]
>>> std.schoolName
'ABC School' # value changed for all instances
>>> std.schoolName = 'My School' # changing instance's attribute
>>> std.schoolName
'My School'
>>> Student.schoolName # instance level change not reflectd to class attribute
'ABC School'
>>> std2 = Student[]
>>> std2.schoolName
'ABC School'
9 chỉ là một tên quy ước cho đối số đầu tiên của một phương thức trong lớp. Một phương thức được định nghĩa là class Student:
count = 0
def __init__[self]:
Student.count += 1
0 nên được gọi là class Student:
count = 0
def __init__[self]:
Student.count += 1
1 cho đối tượng class Student:
count = 0
def __init__[self]:
Student.count += 1
2 của lớpPhương thức lớp trên có thể được gọi như một hàm bình thường, như hình bên dưới
Thí dụ. phương pháp lớp
Sao chépclass Student:
pass
1Tham số đầu tiên của phương thức không cần đặt tên
class Student:
schoolName = 'XYZ School'
5. Bạn có thể đặt bất kỳ tên nào đề cập đến thể hiện của phương thức gọi. Phương thức class Student:
count = 0
def __init__[self]:
Student.count += 1
4 sau đây đặt tên tham số đầu tiên là class Student:
count = 0
def __init__[self]:
Student.count += 1
5 thay vì class Student:
schoolName = 'XYZ School'
5 và nó hoạt động hoàn toàn tốtThí dụ. phương pháp lớp
Sao chépclass Student:
pass
2Định nghĩa một phương thức trong lớp mà không có tham số
class Student:
schoolName = 'XYZ School'
5 sẽ tạo ra một ngoại lệ khi gọi một phương thứcThí dụ. phương pháp lớp
Sao chépclass Student:
pass
3class Student:
pass
4Phương thức có thể truy cập các thuộc tính của cá thể bằng cách sử dụng tham số
class Student:
schoolName = 'XYZ School'
5Thí dụ. phương pháp lớp
Sao chépclass Student:
pass
5Bây giờ bạn có thể gọi phương thức, như hình bên dưới
Thí dụ. Gọi một phương thức
Sao chépclass Student:
pass
6Xóa thuộc tính, đối tượng, lớp
Bạn có thể xóa các thuộc tính, đối tượng hoặc chính lớp đó bằng cách sử dụng từ khóa
class Student:
count = 0
def __init__[self]:
Student.count += 1
9, như minh họa bên dưới