類 訪問限制

2022-03-05 05:03:23 字數 770 閱讀 5194

練習

請把下面的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....