Tôi có thể sử dụng bản thân bên ngoài lớp Python không?
Trong lập trình hướng đối tượng, khi chúng ta thiết kế một lớp, chúng ta sử dụng biến đối tượng và biến lớp. Show
Trong Class, các thuộc tính có thể được định nghĩa thành hai phần
Sau khi đọc bài viết này, bạn sẽ học được
Mục lụcBiến lớp trong Python là gì?Nếu giá trị của một biến không thay đổi từ đối tượng này sang đối tượng khác, thì các loại biến như vậy được gọi là biến lớp hoặc biến tĩnh Các biến lớp được chia sẻ bởi tất cả các phiên bản của một lớp. Không giống như biến thể hiện, giá trị của biến lớp không thay đổi từ đối tượng này sang đối tượng khác, Trong Python, các biến Lớp được khai báo khi một lớp đang được xây dựng. Chúng không được định nghĩa bên trong bất kỳ phương thức nào của một lớp vì điều này chỉ có 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 Ví dụ, trong lớp Sinh viên, chúng ta có thể có các biến thể hiện khác nhau như tên và số điểm danh vì tên và số điểm danh của mỗi sinh viên là khác nhau Tuy nhiên, nếu chúng ta muốn đưa tên trường vào lớp học sinh, chúng ta phải sử dụng biến lớp thay vì biến thể hiện vì tên trường giống nhau đối với tất cả học sinh. Vì vậy, thay vì duy trì bản sao riêng biệt trong từng đối tượng, chúng ta có thể tạo một biến lớp chứa tên trường để tất cả học sinh (đối tượng) có thể chia sẻ nó Chúng ta có thể thêm bất kỳ số lượng biến lớp nào trong một lớp Tạo biến lớpMột biến lớp được khai báo bên trong lớp, nhưng bên ngoài bất kỳ phương thức thể hiện nào hoặc phương thức Emma 10 ABC School Jessa 20 ABC School9 Theo quy ước, thông thường nó được đặt ngay bên dưới tiêu đề lớp và trước phương thức khởi tạo và các phương thức khác Có thể bạn quan tâmVí dụ
đầu ra Emma 10 ABC School Jessa 20 ABC School Trong ví dụ trên, chúng ta đã tạo biến lớp 1 và truy cập nó bằng đối tượng và tên lớpGhi chú. Giống như các biến thông thường, các biến lớp có thể lưu trữ dữ liệu thuộc bất kỳ loại nào. Chúng ta có thể sử dụng danh sách Python, bộ dữ liệu Python và từ điển Python làm biến lớp Truy cập các biến lớpChúng ta có thể truy cập các biến tĩnh theo tên lớp hoặc theo tham chiếu đối tượng, nhưng nên sử dụng tên lớp Trong Python, chúng ta có thể truy cập biến lớp ở những nơi sau
ví dụ 1. Biến lớp truy cập trong hàm tạo
đầu ra ABC School ABC School ví dụ 2. Truy cập biến lớp trong phương thức Instance và lớp bên ngoài ________số 8_______đầu ra Inside instance method Emma 10 ABC School ABC School Outside class ABC School ABC School Trong ví dụ này, chúng tôi đã truy cập biến lớp 1 bằng cách sử dụng tên lớp và từ khóa 2 bên trong một phương thứcSửa đổi biến lớpNói chung, chúng tôi gán giá trị cho một biến lớp bên trong khai báo lớp. Tuy nhiên, chúng ta có thể thay đổi giá trị của biến lớp dù trong lớp hay ngoài lớp Ghi chú. Chúng ta chỉ nên thay đổi giá trị của biến lớp bằng tên lớp Ví dụ
đầu ra Before Emma 10 ABC School After Emma 10 XYZ School Ghi chú Cách tốt nhất là sử dụng tên lớp để thay đổi giá trị của biến lớp. Bởi vì nếu chúng ta cố gắng thay đổi giá trị của biến lớp bằng cách sử dụng một đối tượng, thì một biến thể hiện mới sẽ được tạo cho đối tượng cụ thể đó, biến này sẽ che khuất các biến lớp Ví dụ
đầu ra Before Emma 10 ABC School Jessa 20 ABC School After Emma 10 PQR School Jessa 20 ABC School Một biến thể hiện mới được tạo cho đối tượng s1 và biến này che khuất các biến lớp. Vì vậy, hãy luôn sử dụng tên lớp để sửa đổi biến lớp Biến lớp so với biến thể hiệnBảng sau đây cho thấy sự khác biệt giữa biến thể hiện và biến lớp Trong Python, các thuộc tính có thể được định nghĩa thành hai phần
Đọc thêm. Biến thể hiện trong Python với các ví dụ Instance VariableClass BiếnInstance không được chia sẻ bởi các đối tượng. Mỗi đối tượng có bản sao riêng của thuộc tính thể hiệnCác biến lớp được chia sẻ bởi tất cả các thể hiệnCác biến thể hiện được khai báo bên trong hàm tạo i. e. , phương pháp Emma 10 ABC School Jessa 20 ABC School9. Các biến lớp được khai báo bên trong định nghĩa lớp nhưng bên ngoài bất kỳ phương thức thể hiện và hàm tạo nào. Nó được tạo khi một thể hiện của lớp được tạo. Nó được tạo khi chương trình bắt đầu thực thi. Những thay đổi được thực hiện đối với các biến này thông qua một đối tượng sẽ không phản ánh trong một đối tượng khác. Những thay đổi được thực hiện trong biến lớp sẽ phản ánh trong tất cả các đối tượng. Biến lớp so với. Biến thể hiện Ví dụ Hãy xem ví dụ để tạo một biến lớp và biến thể hiện Emma 10 ABC School Jessa 20 ABC School0 đầu ra Emma 10 ABC School Jessa 20 ABC School1 Biến lớp trong kế thừaNhư bạn đã biết, chỉ một bản sao của biến lớp sẽ được tạo và chia sẻ giữa tất cả các đối tượng của lớp đó Khi chúng ta sử dụng tính kế thừa, tất cả các biến và phương thức của lớp cơ sở đều có sẵn cho lớp con. Trong những trường hợp như vậy, chúng ta cũng có thể thay đổi giá trị biến lớp của lớp cha trong lớp con Chúng ta có thể sử dụng tên lớp cha hoặc tên lớp con để thay đổi giá trị của biến lớp cha trong lớp con Ví dụ Emma 10 ABC School Jessa 20 ABC School2 đầu ra Emma 10 ABC School Jessa 20 ABC School3 Điều gì sẽ xảy ra nếu cả lớp con và lớp cha có cùng tên biến lớp. Trong trường hợp này, lớp con sẽ không kế thừa biến lớp của lớp cơ sở. Vì vậy nên tạo một biến lớp riêng cho lớp con thay vì kế thừa biến lớp cơ sở Ví dụ Emma 10 ABC School Jessa 20 ABC School4 đầu ra Emma 10 ABC School Jessa 20 ABC School5 Sử dụng sai các biến lớpTrong Python, chúng ta nên sử dụng đúng biến lớp vì tất cả các đối tượng đều có chung một bản sao. Do đó, nếu một trong các đối tượng sửa đổi giá trị của một biến lớp, thì tất cả các đối tượng bắt đầu tham chiếu đến bản sao mới Ví dụ, Ví dụ Emma 10 ABC School Jessa 20 ABC School6 đầu ra Emma 10 ABC School Jessa 20 ABC School7 Trong ví dụ trên, biến thể hiện 7 là duy nhất cho mỗi người chơi. Biến lớp 8 và 9 có thể được truy cập và sửa đổi bởi bất kỳ đối tượng nàoBởi vì cả hai đối tượng đã sửa đổi biến lớp, nên một biến thể hiện mới được tạo cho đối tượng cụ thể đó có cùng tên với biến lớp, biến này che khuất các biến lớp Trong trường hợp của chúng tôi, đối với đối tượng ABC School ABC School0 biến đối tượng mới ABC School ABC School1 được tạo và đối với đối tượng ABC School ABC School2 biến đối tượng mới 9 được tạoVì vậy, khi bạn cố gắng truy cập biến lớp bằng cách sử dụng đối tượng ABC School ABC School0 hoặc ABC School ABC School2, nó sẽ không trả về giá trị thực của biến lớp Để tránh điều này, hãy luôn sửa đổi giá trị biến lớp bằng cách sử dụng tên lớp để tất cả các đối tượng nhận được giá trị cập nhật. Như thế này Một phương pháp có thể được sử dụng bên ngoài một lớp học?Bạn có thể có các phương thức công khai trong các lớp không công khai , nhưng bạn có thể không muốn điều đó vì các lớp không công khai sẽ bị hạn chế (có lẽ không có) khả năng hiển thị bên ngoài .
Khi nào tôi nên sử dụng self trong Python?Vì vậy, SELF nên được sử dụng khi bạn xác định một phương thức cá thể, vì nó được truyền tự động làm tham số đầu tiên khi phương thức được gọi. Bạn cũng nên sử dụng self trong Python khi tham chiếu một thuộc tính lớp từ bên trong một phương thức thể hiện
Tôi có thể định nghĩa một hàm bên ngoài lớp trong Python không?Có, bạn chắc chắn có thể có các hàm bên ngoài lớp học .
Chúng ta có thể sử dụng bất cứ thứ gì thay vì tự Python không?Ghi chú. Từ self không phải là một từ khóa, mà nó là một quy ước được sử dụng bởi các nhà phát triển Python. Bạn chỉ cần sử dụng bất kỳ từ nào khác làm tham số đầu tiên và từ đó vẫn sẽ thực hiện công việc . Tuy nhiên, tốt hơn là sử dụng self thay vì bất kỳ thứ gì khác vì nó cải thiện khả năng đọc mã. |