Python自學筆記一 反射

2021-07-26 17:08:00 字數 1781 閱讀 2917

反射:根據字串的形式去物件中操作其成員。

1,通過字串的形式,匯入模組

commons.py

deff1

():print

'f1'

deff2

():print

'f2'

deff3

():print

'f3'

index.py

#根據使用者輸入的內容匯入模組``

inp=raw_input('請輸入模組:')

print(inp,type(inp))

com=__import__(inp)

com.f1()

#輸入:commons

#結果:('commons', )

# f1

這段**的功能就是通過字串的形式匯入模組,其中最重要的就是內建import方法,我們傳入的』commons『賦值給inp,通過import方法,此時com可以視為import commons,此時執行f1就可以得到結果。

另外:import可以匯入巢狀的模組,比如乙個檔案lib中含有test,test中含有comnons模組。這裡我們可以通:`

impor lib.test.commons

from lib.test import commons

#用__import__方式,有多級目錄時fromlist=true:

r=__import__('lib.test.commons', fromlist=true)

2,通過字串的形式,呼叫模組中指定的函式

index.py

inp=input('請輸入模組:')

com=__import__(inp)

inp_func=raw_input('請輸入要執行的函式:')

target_func=getattr(com,inp_func)`

result=target_func()

#輸入:commons

#輸入:f1

#輸出:f1

通過getattr,可以進入com模組中尋找inp_func函式,當然不僅限於函式,模組中的物件都可以,例如commons中的全域性變數。

hasattr,根據字串的形式去模組中判斷物件是否存在。

index.py

inp=input('請輸入模組:')

com=__import__(inp)

inp_func=raw_input('請輸入要執行的函式:')

target_func=hasattr(com,inp_func)`

print target_func

#輸入:commons

#輸入:s

#輸出:false

setattr,可以通過字串的形式進行設定。

r=hasattr(commons,'age')

print r

setattr(commons,'age',18)

r=hasattr(commons,'age')

print r

#false

#true

delattr可以刪除模組中的物件。

總結:import 用字串的形式匯入模組;getattr以字串的形式去某個模組中尋找函式,加上()表示執行函式;hasattr可以判斷某個物件中是否有某個成員;serattr可以設定某個物件中的成員;delattr可以刪除某個物件中的成員。

Python自學手冊筆記(一)

廖雪松的學習 在這裡我找到了大學時期沒有時間搞懂的python。這幾天一直在看,他講得很有條理,簡單易行。其他教程,諸如w3cschool或者其他書本教程,都沒有廖雪松的教程貼近實踐。2 ctrl c 強制退出死迴圈。3 缺少了pass,執行就會有語法錯誤 4 自定義的函式沒有自動檢查引數型別是否正...

python自學筆記

一 字串 單引號定義 s spam len s 求長度 第一位索引從0開始 s 0 s 最後一位也可以從 1開始索引 s 1 m s 2 a 幾個常用到的索引計算方法 s 1 pam 從第乙個一直到最後乙個 s 0 3 spa 從m開始到n 1 不包括n 本例為從0到2 s 3 pam 從第乙個開始...

Python自學筆記 集合

集合 不同元素 無序 不可變型別 s set hello s s set alex alex sb s 集合的內建方法 1,add s.add 新增元素 2,clear s.clear 清空集合 3,copy s.copy 賦值集合 4,pop s.pop 隨即刪除 5,remove s.remov...