python學習筆記三包與模組 反射

2022-07-08 01:45:09 字數 3009 閱讀 4325

1.庫的安裝與解除安裝

python有2種庫:

第三方的庫:

不知道庫版本時可以這樣寫:pip3 install selenium=2.xx,就會返回所有2.0以上的版本號

離線安裝的方式:

2.模組與模組之間的呼叫

乙個python檔案就是乙個模組,包含:類、函式、變數

呼叫模組裡的類、函式、變數:

from 模組(檔名) import *

#呼叫類裡面的方法

per=index() #先例項化index類

per.hell()

#呼叫模組的函式

index()

#呼叫模組的變數

index

3.模組與包、包與包之間的呼叫

包與包之間的呼叫:

from package.module import *

from 包名.模組名(檔名) import *

4.反射

反射是乙個很重要的概念,它可以把字串對映到例項的變數或者例項的方法然後可以去執行呼叫、修改等操作。它有四個重要的方法:

attr是屬性英文的前幾個字母,屬性指的是類中類變數、例項變數和方法。但是要注意不能是私有的,如果你的變數是以「_」開頭,那將無法獲取。

先建乙個login.py:

1

#login.py23

defindex()

4print u''5

6def

login():

7print u'

登入成功'8

9def

logout():

10print u'

退出登入

'

class

person(object):

def__int__

()self:

pass

definfo(self):

print u'

我是person類的info的方法

'

再建乙個fh.py:

#

fh.py

#通過__import__匯入模板模組login,並且放在乙個物件f中

f=__import__('

login')

#通過物件f找login模組中index的字串並且呼叫

f.index()

通過getattr的方式,來實現如上的實現過程,getattr簡單的可以理解為:「依據字串的形式去模組中尋找

指定的目標物件(模組中的函式,或者類中的方法)」,見實現的**為:

import

login

#呼叫login模組中的logout函式

f=getattr(login,'

logout

') #找到函式

f() #執行函式

如何通過反射的方式找到類中的方法並且呼叫它:

import

login

obj=login.person() #

例項化if hasattr(obj,'

info

'): #

這個函式是否存在

f=getattr(obj,'

info')

f()else

:

print u'

sorry

'

設定函式:

語法

def setattr(p_object,name,value):

pass

1

import

login23

#先例項化

4 obj=login.person()56

#設定退出方法

7 f=setattr(obj,'

exit

','this is a exit method.')

89#檢視exit函式是否存在

10 f2=hasattr(obj,'

exit')

1112

print u'

setattr後的結果

',f2

1314

#刪除exit

15 f3=delattr(obj,'

exit')

1617

print u'

驗證模組中的變數是否被刪除:

',hasattr(obj,'

exit

') #因為該exit已被刪除,所以只能判斷當前是否存在exit

實戰:

1

#!/usr/bin/env python2#

coding:utf-834

5 url=raw_input(u'')

67#通過/對url進行拆分成模組和方法

8 target_models,target_function=url.split('/'

) 910#

匯入模組

11 m=__import__

(target_models)

1213

#判斷函式是否存在與模組中

14if

hasattr(m,target_function):

15 target_function=getattr(m,target_function) #

獲取函式

16 target_function() #

執行函式

17else:18

print

'not found 404 page

'#例如

1.輸入位址 login/index

2.位址拆分成

target_models=login,target_function=index

3.接著就是匯入login模組

Python學習筆記 模組和包

4.pyc檔案 2 包 package 1.模組的概念 2.模組的兩種匯入方式 1.import 匯入 import 模組名1使用 as 可以指定模組的別名 import 模組名1 as 模組別名 使用 as 給模組名起 別名 import hm 01 測試模組1 as dogmodule impo...

python學習(12) 模組與包

python學習 11 捕獲異常 模組與包 1.呼叫tools檔案中的 add,jian 函式 from tools import add def add x,y result x y return result result add 1,2 print result 2.引入檔案中所有函式 不推薦...

Python學習筆記(七) 模組和包

1.將 分拆放入多個py檔案,即多個模組,好處 同乙個名字的變數互不影響 2.同名模組放入不同包中 3.包就是資料夾,模組就是 py檔案,且包可以有多級 4.區分包和普通目錄 包下面有個 init py,每層必須要有 import 模組名 呼叫時必須通過模組名來呼叫相關函式,不存在函式名衝突 fro...