練習
請把下面的student物件的gender欄位對外隱藏起來,用get_gender()和set_gender()代替,並檢查引數有效性:
# -*- coding: utf-8 -*-class student(object):
def __init__(self, name, gender):
self.__name = name
self.__gender = gender
def set_gender(self,gender):
if gender=='male'or gender=='female':
self.__gender=gender
else:
raise typeerror("輸入性別錯誤")
def get_gender(self):
return self.__gender
# 測試:
bart = student('bart', 'male')
if bart.get_gender() != 'male':
print('測試失敗!')
else:
bart.set_gender('female')
if bart.get_gender() != 'female':
print('測試失敗!')
else:
print('測試成功!')
注意:if gender=='male'or gender=='female':
Python類訪問限制
如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線 在python中,例項的變數名如果以 開頭,就變成了乙個私有變數 private 只有內部可以訪問,外部不能訪問 class student object def init self,name,score self.name name ...
Python「類」之訪問限制
要讓內部屬性或者方法不被外部訪問,可以把在屬性或者方法的名稱前加上單下劃線 或者在前面加雙下劃線 或者兩邊加雙下劃線。其中,在前面和後面都加雙下劃線的是系統的方法,比如 init 方法。在前面加乙個下劃線的表示保護型別的成員,對於這樣的屬性和方法,只允許類本身和子類可以訪問。例如 class swa...
Python訪問限制
我們可以給乙個例項繫結很多屬性,如果有些屬性不希望被外部訪問到怎麼辦?python對屬性許可權的控制是通過屬性名來實現的,如果乙個屬性由雙下劃線開頭 該屬性就無法被外部訪問。看例子 class person object def init self,name self.name name self....