Nói chung, các biến riêng tư là những biến chỉ có thể nhìn thấy và truy cập được trong lớp mà chúng thuộc về chứ không phải bên ngoài lớp hoặc bất kỳ lớp nào khác. Các biến này được sử dụng để truy cập các giá trị bất cứ khi nào chương trình chạy được sử dụng để ẩn dữ liệu khỏi các lớp khác. Trong Java, các biến private được khai báo là private bằng cách sử dụng từ khóa private, điều này cho phép các biến và phương thức với private chỉ có thể truy cập các thành viên bên trong lớp và bên ngoài lớp, và ở đây các phương thức private không thể bị ghi đè. Trên thực tế, trong Python, không có thứ gì được khai báo hoặc bất cứ thứ gì có thể được gọi là thành viên riêng tư. Nhưng nó có thể được thực hiện bằng cách thêm hai dấu gạch dưới [ __ ] vào đầu bất kỳ biến hoặc phương thức nào cần được khai báo là riêng tư
Gói phát triển phần mềm tất cả trong một[hơn 600 khóa học, hơn 50 dự án]
Giá
Xem khóa học
600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 [83.722 xếp hạng]
Biến riêng tư hoạt động như thế nào trong Python?
Thực tế, ngôn ngữ lập trình Python không có bất kỳ thành viên hoặc biến riêng nào, chẳng hạn như trong Java, nó được thực hiện bằng từ khóa private, nhưng trong Python, nó được thực hiện bằng hai dấu gạch dưới
Bắt đầu khóa học phát triển phần mềm miễn phí của bạn
Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác
[ __ ] ở đầu bất kỳ biến hoặc phương thức nào cần được khai báo là private. Trong Python, khi chúng ta sử dụng các biến được khai báo là thành viên dữ liệu private, lập trình viên sẽ dễ dàng không thể sửa đổi hay thay đổi giá trị một cách dễ dàng như khi chúng ta khai báo là public nếu các biến được khai báo là public. . Hãy cho chúng tôi xem một ví dụ về cách trong Python, chúng ta có thể sử dụng các biến riêng tư và chúng được khai báo như thế nào
Các ví dụ để triển khai các biến riêng của Python
Dưới đây là các ví dụ được đề cập
Ví dụ 1
Mã số
class mainclass:
__privateVariable = 2020;
def __privateMethod[self]:
print["I'm inside class mainclass that is this is private method"]
def insideclass[self]:
print["Private Variable: ",mainclass.__privateVariable]
self.__privateMethod[]
foo = mainclass[]
foo.insideclass[]
đầu ra
Giải trình. Trong chương trình trên, chúng ta có một lớp được định nghĩa là “lớp chính” bên trong này, chúng ta có các biến và phương thức được khai báo là riêng tư bằng cách sử dụng hai dấu gạch dưới biến riêng là “__PrivateVariable” và phương thức riêng là “__PrivateMethod” để chúng có thể được truy cập bằng cùng một lớp . Điều này có thể được chứng minh trong đoạn mã dưới đây với đầu ra
Ví dụ #2
Mã số
class mainclass:
__privateVariable = 2020;
def __privateMethod[self]:
print["I'm inside class mainclass that is this is private method"]
def insideclass[self]:
print["Private Variable: ",mainclass.__privateVariable]
foo = mainclass[]
foo.insideclass[]
foo.__privateMethod[]
đầu ra
Giải trình. Trong chương trình trên, chúng ta có thể nhận thấy rằng phương thức này là riêng tư, nhưng chúng ta đang cố truy cập nó bên ngoài lớp “lớp chính”, vì vậy nó đưa ra lỗi cho biết lớp được khai báo không có phiên bản nào của thuộc tính này. Vì vậy, nói chung, tất cả các biến và phương thức được khai báo bên trong lớp là công khai theo các phương thức theo mặc định, nhưng khi chúng ta sử dụng dấu gạch dưới trước chúng, thì chúng trở thành thành viên lớp riêng mà chúng chỉ có thể được truy cập trong lớp mà chúng thuộc về chứ không phải thuộc về. . Quá trình tạo các biến hoặc phương thức thành riêng tư như vậy được gọi là xáo trộn dữ liệu hoặc xáo trộn tên để tránh sự mơ hồ của các tên được xác định bởi các lớp con. Điều này giúp ghi đè các phương thức của các lớp con mà không làm gián đoạn các cuộc gọi phương thức nội bộ
Trong Python, tính riêng tư thực sự không được hỗ trợ, vì vậy nó được gọi là “chỉ số sử dụng nội bộ yếu”. Vì vậy, đây chỉ là một dấu gạch dưới duy nhất [ _ ] được sử dụng để khai báo các biến, phương thức, hàm và lớp riêng tư trong mô-đun. Vì vậy, chỉ với một dấu gạch dưới duy nhất, chúng ta cũng có thể khai báo các biến và phương thức riêng tư. Hãy để chúng tôi chứng minh điều này với đoạn mã dưới đây
Ví dụ #3
Mã số
class Vehicle:
def _start_engine[self]:
return "Start the Bike."
def run[self]:
return self._start_engine[]
if __name__ == '__main__':
bike = Vehicle[]
print[bike._start_engine[]]
print["Bike has started."]
bike.run[]
print["Bike is running."]
đầu ra
Giải trình. Vì vậy, trong đoạn mã trên, chúng ta có thể sử dụng phương thức riêng tư “_start_engine” được sử dụng để đặt nó ở chế độ riêng tư. Nhưng dấu gạch dưới đơn không được sử dụng nhiều hơn vì dấu gạch dưới đơn [ _ ] chỉ có nghĩa là bạn không thể truy cập nó từ bên ngoài lớp, trong đó dấu gạch dưới kép [ __ ] cũng có nghĩa tương tự, nhưng nó được tuân thủ nghiêm ngặt hơn so với dấu gạch dưới đơn
Dấu gạch dưới đơn không được sử dụng nhiều bởi vì nếu đôi khi phương thức riêng được khai báo bằng dấu gạch dưới đơn sẽ sửa đổi các biến của lớp kiến và nếu phương thức này được gọi, thì có khả năng nó sẽ vi phạm hành vi của lớp. Vì dấu gạch dưới kép [ __ ] là trường hợp sử dụng hợp lệ và được sử dụng rộng rãi nhất để khai báo các thành viên của lớp riêng nhằm tránh sự mơ hồ khi xác định tên theo các lớp con, do đó, cơ chế như vậy ít được hỗ trợ hơn, còn được gọi là xáo trộn tên;
Phần kết luận
Nói chung, bất kỳ ngôn ngữ lập trình nào cũng có 3 công cụ sửa đổi quyền truy cập là riêng tư, công khai và được bảo vệ. Trong Python, chúng ta cũng có tất cả các access modifiers này, nhưng private access modifiers không được sử dụng, hay có thể nói nó không được hỗ trợ nhiều trong Python vì nó có thể hiển thị tốt các biến hoặc phương thức thành viên của lớp private. Các biến riêng chỉ có thể được truy cập bên trong lớp mà nó thuộc về, nhưng nó không thể được truy cập bởi lớp bên ngoài. Trong Python, để khai báo các biến hoặc phương thức riêng tư, dấu gạch dưới đơn hoặc kép được sử dụng trong khi thực tế đơn lẻ không nhiều vì dấu gạch dưới kép được sử dụng nhiều hơn vì nó hỗ trợ các biến được truy cập trong lớp cũng như hỗ trợ cơ chế xáo trộn tên
Bài viết được đề xuất
Đây là hướng dẫn về Biến riêng Python. Ở đây chúng tôi thảo luận về phần giới thiệu về Biến riêng tư Python cùng với cách thức hoạt động của nó và các ví dụ tương ứng. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm