python自動化筆記 八 動態屬性設定

2021-10-10 22:59:15 字數 3049 閱讀 2738

一、動態屬性設定:setattr( 引數1, 引數2, 引數3)

引數1:物件(類)

引數2:屬性名

引數3:屬性值

setattr()的作用:動態給物件/類新增屬性,如果屬性存在則修改屬性的值;如果不存在,新增屬性

下面看個例子:

class

student

:# 定義乙個學生類id=

"學生"

# 把乙個字典的鍵值對遍歷出來,把字典中的鍵值對設定為類的屬性和屬性值

data =

for k, v in data.items():

student.k =

"v"print

(student.__dict__)

輸出如下:

很明顯,用這種直接賦值的方法無法把字典中遍歷出來的鍵值對設定為類的屬性和屬性值;這時我們可以用到setattr()函式來進行動態新增屬性

class

student

:# 定義乙個學生類id=

"學生"

data =

for k, v in data.items():

setattr

(student, k, v)

print

(student.__dict__)

輸出如下:

#很明顯新增成功,毛問題

剛剛是給類新增屬性,物件也是一樣,走個**瞧瞧:

class

student

:# 定義乙個學生類id=

"學生"

student01 = student(

)# 例項化學生物件

data =

for k, v in data.items():

setattr

(student01,k,v)

print

(student01.__dict__)

輸出如下:

#完美

二、動態獲取屬性:getattr(引數1、引數2、引數3)

引數1:物件(類)

引數2:屬性名

引數3: 當獲取的屬性不存在時,會返回此值,若沒填此引數,則會報錯

下面**走乙個

class

student

:# 定義乙個學生類id=

"學生"

name =

"小英短"

age =

13key =

input

("請輸入要獲取的屬性:"

)res =

getattr

(student,key,

"不存在"

)print

(res)

執行如下:

請輸入要獲取的屬性:

id學生

#################

請輸入要獲取的屬性:

666不存在

三、動態刪除屬性:delattr(引數1、引數2)

引數1:物件(類)

引數2:屬性名

**走乙個

class

student

:def

__init__

(self,

id,name,age)

: self.id=

id self.name = name

self.age = age

student02 = student(

"學生"

,"小英短",8

)key =

input

("請輸入要刪除的屬性:"

)delattr

(student02,key)

print

(student02.__dict__)

執行如下:

請輸入要刪除的屬性:

id

四、判斷屬性是否存在:hasattr(引數1,引數2)

引數1:物件(類)

引數2:屬性名

class

student

:def

__init__

(self,

id,name,age)

: self.id=

id self.name = name

self.age = age

student01 = student(

"學生"

,"小布偶",8

)res =

hasattr

(student01,

"id"

)# 若存在引數屬性,則返回true,否之返回false

res2 =

hasattr

(student01,

"***"

)print

(res)

print

(res2)

輸出如下:

true

false

可以結合判斷語句進行運用

class

student

:def

__init__

(self,

id,name,age)

: self.id=

id self.name = name

self.age = age

student01 = student(

"學生"

,"小布偶",8

)ifhasattr

(student01,

'***'):

print

('屬性存在'

)else

:print

("屬性不存在"

)

輸出如下:

屬性不存在

python自動化筆記之enumerate 函式

enumerate 函式是python的內建函式 enumerate函式說明 1 函式原型 enumerate sequence,start 0 2 功能 將可迴圈序列sequence以start開始分別列出資料下標和序列資料 3 資料物件包括如列表 元組或字串,enumerate會將該資料物件組合...

python自動化測試

為了讓單元測試 能夠被測試和維護人員更容易地理解,最好的解決辦法是讓開發人員遵循一定的規範來編寫用於測試的 具體到python程式設計師來講,則是要採用pyunit這一自動測試框架來構造單元測試用例。目前pyunit已經得到了大多數python開發人員的認可,成了事實上的單元測試標準。1.要被測試的...

python自動化例項

前面文章,我們介紹了如何採用xpath表示式去定位網頁元素,在掌握了如何抓取或者如何書寫精確的xpath表示式後,我們可以開始寫自己的第乙個真正意義上的webui 自動化測試指令碼,就相當於,你在學習python,如何在控制台列印hello,python!一樣。在寫自動化指令碼之前,需要明確手動指令...