類的屬性控制

2022-08-12 12:15:20 字數 1029 閱讀 7416

設定物件屬性

__setattr__(self, name, value):

def __setattr__(self, name, value):

self.__dict__[name] = value12

查詢物件屬性

__getattr__(self, name): 訪問這個屬性時 , 在沒有查詢到相應例項屬性時被呼叫

__getattribute__(self, name): 每次訪問屬性時被呼叫 , 更容易引起無限遞迴情況 , 使用時小心

詳見getattr與getattribute

刪除物件屬性

__delattr__(self, name):

例項class program(object):

def __init__(self, name, age):

self.name = name

self.age = age

def __getattribute__(self, name):

# return getattr(self, name) # 引起無限遞迴

# return self.__dict__[name] # 引起無限遞迴

return super(program, self).__getattribute__(name)

def __setattr__(self, name, value):

self.__dict__[name] = value

def __setattr__(self, age, value):

self.__dict__[age] = value

def __getattr__(self, age):

return super(program, super).__getattr__(age)

if __name__ == '__main__':

p = program('mike', 22)

print(p.name)

print(p.age)

————————————————

python的類訪問控制 私有屬性

一 訪問控制私有屬性 class person def init self,name,age 19 self.name name self.age age def growup self,i 1 if i 0 and i 150 self.age 1p1 person tom p1.growup 2...

Python中類的屬性的訪問控制

因為自己是做.net的,之前有學習過python,喜歡這門語言的很多特性,最近又不時看了一會兒,將自己的感受分享給大家,其中也難免會用c 的角度看python的語法,主要還是講下python中類中對屬性的訪問。講到屬性訪問,都能想到公有,私有,受保護,c 的方法是public private pro...

Python中類的屬性的訪問控制

因為自己是做.net的,之前有學習過python,喜歡這門語言的很多特性,最近又不時看了一會兒,將自己的感受分享給大家,其中也難免會用c 的角度看python的語法,主要還是講下python中類中對屬性的訪問。講到屬性訪問,都能想到公有,私有,受保護,c 的方法是public private pro...