1、什麼是包裝# -*- coding : utf-8 -*-
包裝類,就是給被包裝的類加個殼;被包裝內實現殼的內部,而包裝內提供殼的外部(介面),有點類似於繼承關係,
不過也不完全時,因為通過繼承也可以實現包裝效果,不使用繼承同樣可以實現包裝效果。下面通過乙個例子來展示
包裝的概念
class packagelist(object):
"包裝list型別,使用非繼承實現"
def __init__(self):
"構造方法,建立乙個內部list物件"
self.innerlist =
def add(self, element):
"新增乙個元素"
def remove(self, element):
"刪除乙個元素"
self.innerlist.remove(element)
def extend(self, elements):
"擴充套件乙個元素或者乙個列表"
if isinstance(elements, list):
self.innerlist.extend(elements)
else:
def get(self, start = 0, end = -1, step = 1):
"獲取列表,或者某個元素,或者某個區域的元素"
if isinstance(start, int) and isinstance(end, int) and isinstance(step, int):
if end == -1:
return self.innerlist[start::step]
else:
return self.innerlist[start : end : step]
else:
raise typeerror
if __name__ == "__main__":
packagelist = packagelist()
# 新增乙個元素
packagelist.add(1)
# 新增乙個序列
packagelist.extend([2, 3, 4])
# 刪除乙個元素
packagelist.remove(3)
# 獲取列表
print(packagelist.get())
2、什麼是授權
# -*- coding : utf-8 -*-
那麼python是通過什麼來獲取權利,或者說是如何接受授權;關鍵是使用__getattr__內建函式,
在python中,使用乙個屬性時,先到區域性搜尋,然後到類搜尋,最後呼叫__getattr__函式,由於
這一點,我們可以通過這個函式去獲取某個物件的許可權(屬性)。
注:屬性:變數和方法
class fileauthorization(object):
"實現檔案物件授權"
# obj : 授權方
def __init__(self, obj):
self.__data = obj
# 重寫__getattr__
def __getattr__(self, attr):
"使用內建getattr獲取某個物件的屬性,當python解析器在類例項和類中都沒有搜尋到屬性時,呼叫"
return getattr(self.__data, attr)
if __name__ == "__main__":
file = fileauthorization(open("./data.txt", 'w'))
file.writelines(["test1\n", "test2\n"])
file.flush()
file.close()
3、總結:
包裝和授權往往使用在定製某種類,其實現的多樣性,只要你能想的到,就可以出現千變萬化的授權、包裝實現方式,上述僅僅提供參考。
python許可權授權 MySQL授權(使用者許可權)
一 mysql查詢與許可權 二 授權 使用者管理 設定使用者密碼 前期準備工作 停止服務 將配置檔案當中的skip grant tables刪除掉 重啟服務 執行修改命令 檢視使用者狀態 如果資料過多,用 g可以規範布局 select user,host,authentication string ...
mysql授權使用者許可權 mysql授權使用者許可權
grant 普通資料使用者,查詢 插入 更新 刪除 資料庫中所有表資料的權利。grant select on testdb.to common user grant insert on testdb.to common user grant update on testdb.to common us...
Apache Shiro 基於許可權授權
授權即是訪問控制,是對資源訪問的管理過程。它將判斷使用者在應用程式中是否對資源有相應的訪問許可權。但現在很多程式都使用隱式的角色進行訪問控制,定義乙個角色來代表一系列的操作。當需要對某一操作進行授權驗證時,只需判斷是否擁有該角色即可。行為已被乙個單獨的名字所蘊含。這種角色許可權相對簡單 模糊,不利於...