日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python类的成员函数_Python实现动态添加类的属性或成员函数的解决方法

發(fā)布時(shí)間:2025/4/16 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python类的成员函数_Python实现动态添加类的属性或成员函数的解决方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

某些時(shí)候我們需要讓類動(dòng)態(tài)的添加屬性或方法,比如我們?cè)谧霾寮r(shí)就可以采用這種方法。用一個(gè)配置文件指定需要加載的模塊,可以根據(jù)業(yè)務(wù)擴(kuò)展任意加入需要的模塊。

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

首先我們可以參考ulipad的實(shí)現(xiàn):mixin。

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

代碼如下所示:

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下面建立一個(gè)空的__init__.py文件,把目錄變?yōu)橐粋€(gè)包,在modules目錄下建立真正的BAS_GetUserList實(shí)現(xiàn):BAS_GetUserList文件中有個(gè)BAS_GetUserList函數(shù)如下:

def BAS_GetUserList(self, strs):

return [0, strs]

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

總結(jié)

以上是生活随笔為你收集整理的python类的成员函数_Python实现动态添加类的属性或成员函数的解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。