xia的小窩

一起來coding和碼字吧

0%

pyclass-私有

使用私有變數、私有方法好處有2種

  1. 限制外部存取物件的重要資料來增強安全性和可靠性,防止可能因繼承所引起的變數衝突
  2. 更好閱讀

self.__y 之私有變數

1
2
3
4
5
6
7
8
9
10
11
12
13
class assume:
def __init__(self) -> None:
self.x = 2
self.__y = 3
def print_y(self):
print(self.__y)

test = assume()
print(test.__y)
# Traceback (most recent call last):
# File "C:\Users\a9132\Desktop\p\1.py", line 9, in <module>
# print(test.__y)
# AttributeError: 'assume' object has no attribute '__y'

這邊告訴我們,不可以存取私有變數

如果要找到變數,則做下列更改

1
2
3
print(test.print_y())
# 3
# None

其實單底和雙底線也算是私有變數