Sự khác biệt giữa các biến công khai và riêng tư trong Python là gì?

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

Biến công khai và riêng tư trong Python là gì?

Tất cả các biến và phương thức trong mã đều được mặc định công khai . Khi chúng tôi tuyên bố thành viên dữ liệu của mình ở chế độ riêng tư, chúng tôi muốn nói rằng không ai có thể truy cập nó từ bên ngoài lớp. Ở đây Python hỗ trợ một kỹ thuật gọi là mangling tên.

Biến riêng tư trong Python là gì?

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. These variables are used to access the values whenever the program runs that is used to keep the data hidden from other classes.

Sự khác biệt giữa công khai/riêng tư và được bảo vệ trong Python là gì?

Đối tượng của cùng một lớp được yêu cầu để gọi một phương thức công khai. Sự sắp xếp các biến cá thể riêng và phương thức công khai này đảm bảo nguyên tắc đóng gói dữ liệu. Các thành viên được bảo vệ của một lớp có thể truy cập được từ bên trong lớp đó và cũng có sẵn cho các lớp con của nó .

Sự khác biệt giữa mã công khai và mã riêng là gì?

Kết luận. Cho đến nay, chúng ta đã tìm hiểu về hai công cụ sửa đổi truy cập. public, cho phép các hàm bên ngoài sửa đổi mã bên trong một lớp và private, ngăn bất kỳ mã nào từ bên ngoài lớp thay đổi các thuộc tính và phương thức mà nó bảo vệ.

Chủ Đề