目錄
動態獲取屬性
getattr獲取類屬性:
參數1:類
參數2:屬性名
參數3:默認值。如果屬性不存在,則返回該值
示例:
# 示例1 class TestData: url = 'http://www.baidu.com' method = 'get' # getattr獲取類屬性 res = getattr(TestData, 'url') print(res) # 輸出結果:http://www.baidu.com res1 = getattr(TestData, 'result', 'python') print(res1) # 輸出結果:python # 示例2: class TestData: url = 'http://www.baidu.com' method = 'get' name = input('請輸入你要獲取的屬性名:') # getattr獲取類屬性 res = getattr(TestData, name, 'None') print(res) # 輸出結果:http://www.baidu.com
動態設置屬性
setattr設置屬性值:
參數1:類
參數2:屬性名
參數3:屬性值
class TestData: url = 'http://www.baidu.com' method = 'get' # 示例1: # 類外面定義類屬性 # 方式一:類.屬性名=屬性值 TestData.result = 'Pass' print(TestData.result) # 方式二:動態setattr設置屬性 setattr(TestData, 'para', 'username') print(TestData.para) # 輸出結果:username # 示例2: # 將下面2個列表,title作爲屬性名,data作爲屬性值,一一對應起來 title = ['name', 'age', 'gender'] data = ['flora', 26, 'female'] # 以下方法是不可取的,會報錯:AttributeError: type object 'TestData' has no attribute 'title' # TestData.title[0] = data[0] # print(TestData.title[0]) # setattr(TestData, title[0], data[0]) # setattr(TestData, title[1], data[1]) # setattr(TestData, title[2], data[2]) for i in range(len(title)): setattr(TestData, title[i], data[i]) print(TestData.name, TestData.age, TestData.gender) # 輸出結果:flora 26 female
動態刪除屬性
delattr動態刪除屬性:
參數1:類
參數2:屬性名
示例:
class TestData: url = 'http://www.baidu.com' method = 'get' # 方式一:關鍵字del del TestData.url print(TestData.url) # 報錯:AttributeError: type object 'TestData' has no attribute 'url' # 方式二:delattr name = input('請輸入你要刪除的屬性:') delattr(TestData, name)
判斷屬性是否存在
hasattr判斷屬性是否存在:
參數1:類名
參數2:屬性名
如果屬性存在,返回True;如果屬性不存在,返回False
示例:
class TestData: url = 'http://www.baidu.com' method = 'get' del TestData.url res = hasattr(TestData, 'url') print(res) # 輸出結果:False res1 = hasattr(TestData, 'method') print(res1) # 輸出結果:True