亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實現動態(tài)添加類的屬性或成員函數的解決方法

 更新時間:2014年07月16日 10:03:33   投稿:shichen2014  
這篇文章主要介紹了Python實現動態(tài)添加類的屬性或成員函數的解決方法,在類似插件開發(fā)的時候會比較有用,需要的朋友可以參考下

某些時候我們需要讓類動態(tài)的添加屬性或方法,比如我們在做插件時就可以采用這種方法。用一個配置文件指定需要加載的模塊,可以根據業(yè)務擴展任意加入需要的模塊。

本文就此簡述了Python實現動態(tài)添加類的屬性或成員函數的解決方法,具體方法如下:

首先我們可以參考ulipad的實現:mixin。

這里做的比較簡單,只是聲明一個類,類初始化的時候讀取配置文件,根據配置列表加載特定目錄下的模塊下的函數,函數和模塊同名,將此函數動態(tài)加載為類的成員函數。

代碼如下所示:

class WinBAS(Bas):
  def __init__(self):
    self.__baslist = {}
    self.__Init_Modules()
    pass
  def __Init_Modules(self):
    import modplugs
    for m in modplugs.__moduleset__:
      mh = __import__('modules.' + m)# + '.' + m)
      ma = getattr(mh, m)# + '.' + m)
      ma = getattr(ma, m)
      setattr(self.__class__, m, ma)

modplugs.py是模塊配置文件如下:

__moduleset__ = [
'BAS_GetUserList',
]

然后建立目錄modules下面建立一個空的__init__.py文件,把目錄變?yōu)橐粋€包,在modules目錄下建立真正的BAS_GetUserList實現:BAS_GetUserList文件中有個BAS_GetUserList函數如下:

def BAS_GetUserList(self, strs):
  return [0, strs]

這樣WinBAS類就可以動態(tài)加入了BAS_GetUserList函數。

相關文章

  • Python的Flask框架中實現簡單的登錄功能的教程

    Python的Flask框架中實現簡單的登錄功能的教程

    這篇文章主要介紹了Python的Flask框架中實現簡單的登錄功能的教程,登錄是各個web框架中的基礎功能,需要的朋友可以參考下
    2015-04-04
  • 在Python中定義一個常量的方法

    在Python中定義一個常量的方法

    今天小編就為大家分享一篇在Python中定義一個常量的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python爬蟲實現獲取動態(tài)gif格式搞笑圖片的方法示例

    Python爬蟲實現獲取動態(tài)gif格式搞笑圖片的方法示例

    這篇文章主要介紹了Python爬蟲實現獲取動態(tài)gif格式搞笑圖片的方法,結合實例形式分析了Python針對gif格式圖片的爬取、下載等相關操作技巧,需要的朋友可以參考下
    2018-12-12
  • python em算法的實現

    python em算法的實現

    這篇文章主要介紹了python em算法的實現,幫助大家更好的理解機器學習,感興趣的朋友可以了解下
    2020-10-10
  • Numpy數據轉換成image并保存的實現示例

    Numpy數據轉換成image并保存的實現示例

    本文主要介紹了Numpy數據轉換成image并保存的實現示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • python使用pygame模塊實現坦克大戰(zhàn)游戲

    python使用pygame模塊實現坦克大戰(zhàn)游戲

    這篇文章主要為大家詳細介紹了python使用pygame模塊實現坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Matplotlib繪圖基礎之刻度詳解

    Matplotlib繪圖基礎之刻度詳解

    Matplotlib中刻度是用于在繪圖中表示數據大小的工具,通常以整數或小數表示,具體取決于坐標軸的類型和限制,下面就為大家介紹一下Matplotlib中刻度是具體設置與使用吧
    2023-07-07
  • Python的函數使用詳解

    Python的函數使用詳解

    大家好,本篇文章主要講的是Python的函數使用詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • python實現大轉盤抽獎效果

    python實現大轉盤抽獎效果

    這篇文章主要為大家詳細介紹了python實現大轉盤抽獎效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python中使用pypdf2合并、分割、加密pdf文件的代碼詳解

    Python中使用pypdf2合并、分割、加密pdf文件的代碼詳解

    這篇文章主要介紹了Python中使用pypdf2合并、分割、加密pdf文件的代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05

最新評論