最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何獲取模塊中類以及類的屬性方法信息

 更新時間:2021年12月13日 09:34:37   作者:小黑測試員  
python對屬性權(quán)限的控制是通過屬性名來實現(xiàn)的,下面這篇文章主要給大家介紹了關于Python如何獲取模塊中類以及類的屬性方法信息的相關資料,需要的朋友可以參考下

一、sys.modules模塊

sys.modules是一個全局字典,python啟動后就將該字典加載在內(nèi)存中,每當導入新的模塊時sys.modules都將記錄這些導入模塊。字典sys.modules對于加載模塊起到了緩沖的作用。

sys.modules擁有字典所擁有的一切方法。如:

import sys
print(sys.modules[__name__])
print(sys.modules.values())
print(sys.modules.keys())
print(sys.modules.items())
#示例
print(sys.modules.get("demo2"))
#輸出
<module 'demo3' from 'G:\\BaiXXXYuan\\BaiXXXXYuanApi\\demo3.py'>

二、inspect模塊

inspect模塊主要提供了四種用處:

  1.對對象進行類型檢查

  2.獲取源碼

  3.獲取類或者函數(shù)的參數(shù)信息

  4.解析堆棧

  • inspect.getmembers(object[, predicate])

返回一個包含對象的所有成員(name, value)的列表。返回的內(nèi)容比對象的dict包含的內(nèi)容多,源碼是通過dir()實現(xiàn)的。

predicate是一個可選的函數(shù)參數(shù),只有predicate函數(shù)判斷為True的成員才被返回。

  • predicate一般調(diào)用以下16個方法
inspect.ismodule(object): 是否為模塊
inspect.isclass(object):是否為類
inspect.ismethod(object):是否為方法(bound method written in python)
inspect.isfunction(object):是否為函數(shù)(python function, including lambda expression)
inspect.isgeneratorfunction(object):是否為python生成器函數(shù)
inspect.isgenerator(object):是否為生成器
inspect.istraceback(object): 是否為traceback
inspect.isframe(object):是否為frame
inspect.iscode(object):是否為code
inspect.isbuiltin(object):是否為built-in函數(shù)或built-in方法
inspect.isroutine(object):是否為用戶自定義或者built-in函數(shù)或方法
inspect.isabstract(object):是否為抽象基類
inspect.ismethoddescriptor(object):是否為方法標識符
inspect.isdatadescriptor(object):是否為數(shù)字標識符,數(shù)字標識符有__get__ 和__set__屬性; 通常也有__name__和__doc__屬性
inspect.isgetsetdescriptor(object):是否為getset descriptor
inspect.ismemberdescriptor(object):是否為member descriptor

inspect其他方法

inspect.getdoc(object): 獲取object的documentation信息
inspect.getcomments(object)
inspect.getfile(object): 返回對象的文件名
inspect.getmodule(object):返回object所屬的模塊名
inspect.getsourcefile(object): 返回object的python源文件名;object不能使built-in的module, class, mothod
inspect.getsourcelines(object):返回object的python源文件代碼的內(nèi)容,行號+代碼行
inspect.getsource(object):以string形式返回object的源代碼
inspect.cleandoc(doc):

三、python獲取模塊中所有類的實例

demo2文件

class A():
    def __init__(self):
        self.A = "A"
?
    def run(self):
        print(self.A)

demo3文件

class D():
    
    def __init__(self):
        self.D = "D"
?
    def d(self):
        print(self.D)

demo文件

from demo import A
import demo2
import inspect
import sys
?
?
class B(A):
?
    def __init__(self):
        self.B1 = "B"
?
    def run(self):
        print(self.B1)
?
?
class C(A):
?
    def __init__(self):
        self.C1 = "C"
?
    def run(self):
        print(self.C1)
?
?
if __name__ == '__main__':
    print(sys.modules.get("demo3"))
    class_list = []
    print(inspect.getmembers(sys.modules[__name__], inspect.isclass))
    print(inspect.getmembers(sys.modules.get("demo3"), inspect.isclass))
    for name, class_ in inspect.getmembers(sys.modules[__name__], inspect.isclass):
        class_list.append(class_)
        class_().run()
?
    print(class_list)
?
?
#輸出
<module 'demo3' from 'G:\\BaiGuoYuan\\BaiGuoYuanApi\\demo3.py'>
[('A', <class 'demo2.A'>), ('B', <class '__main__.B'>), ('C', <class '__main__.C'>)]
[('D', <class 'demo3.D'>)]
A
B
C
[<class 'demo2.A'>, <class '__main__.B'>, <class '__main__.C'>]

總結(jié)

到此這篇關于Python如何獲取模塊中類以及類的屬性方法信息的文章就介紹到這了,更多相關Python獲取模塊中類及屬性方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 聽歌識曲--用python實現(xiàn)一個音樂檢索器的功能

    聽歌識曲--用python實現(xiàn)一個音樂檢索器的功能

    本篇文章中主要介紹了用python實現(xiàn)一個音樂檢索器,類似于QQ音樂的搖一搖識曲,有興趣的同學可以了解一下。
    2016-11-11
  • python做接口測試的必要性

    python做接口測試的必要性

    在本篇文章里小編給大家整理的是關于python做接口測試的必要性以及相關知識點,有興趣的朋友們學習下。
    2019-11-11
  • python 協(xié)程 gevent原理與用法分析

    python 協(xié)程 gevent原理與用法分析

    這篇文章主要介紹了python 協(xié)程 gevent原理與用法,結(jié)合實例形式分析了Python協(xié)程gevent相關概念、原理、安裝及使用操作技巧,需要的朋友可以參考下
    2019-11-11
  • 使用Python創(chuàng)建簡單的HTTP服務器的方法步驟

    使用Python創(chuàng)建簡單的HTTP服務器的方法步驟

    這篇文章主要介紹了使用Python創(chuàng)建簡單的HTTP服務器的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Python微醫(yī)掛號網(wǎng)醫(yī)生數(shù)據(jù)抓取

    Python微醫(yī)掛號網(wǎng)醫(yī)生數(shù)據(jù)抓取

    今天小編就為大家分享一篇關于Python微醫(yī)掛號網(wǎng)醫(yī)生數(shù)據(jù)抓取,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • python3如何獲取子線程中函數(shù)返回值

    python3如何獲取子線程中函數(shù)返回值

    這篇文章主要介紹了python3如何獲取子線程中函數(shù)返回值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • python中format函數(shù)與round函數(shù)的區(qū)別

    python中format函數(shù)與round函數(shù)的區(qū)別

    大家好,本篇文章主要講的是python中format函數(shù)與round函數(shù)的區(qū)別,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 詳解Python中HTML解析庫pyquery的使用

    詳解Python中HTML解析庫pyquery的使用

    在工作中難免會遇到解析 HTML 的場景,比如將網(wǎng)頁下載下來之后,要解析出里面圖片的路徑、指定標簽里的文本等等,而 pyquery 專門負責做這件事,下面我們就來學習一下他的具體用法吧
    2023-12-12
  • 基于Python實現(xiàn)經(jīng)典植物大戰(zhàn)僵尸游戲

    基于Python實現(xiàn)經(jīng)典植物大戰(zhàn)僵尸游戲

    這篇文章主要介紹了如何利用Python實現(xiàn)植物大戰(zhàn)僵尸游戲,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2022-05-05
  • python繪制雪景圖

    python繪制雪景圖

    這篇文章主要為大家詳細介紹了python繪制雪景圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評論

册亨县| 定陶县| 龙胜| 绥阳县| 承德县| 阳谷县| 开原市| 慈溪市| 柘荣县| 当阳市| 聊城市| 清水河县| 盐城市| 满城县| 建阳市| 河南省| 盐边县| 瑞安市| 神农架林区| 乌拉特中旗| 偏关县| 绵竹市| 黄平县| 汶川县| 沙雅县| 勃利县| 云南省| 芮城县| 霍山县| 永新县| 双流县| 海丰县| 嘉义市| 甘泉县| 新田县| 屏东市| 平顶山市| 阳泉市| 沙湾县| 青州市| 偏关县|