实践是检验真理的唯一标准:拷贝到pycharm试一下
动态设置属性
用作接口自动化的 # 全局变量 参数传递 参数化
1、设置属性
setattr(object,key,value)
2、获取属性
getattr(object,key,"属性不存在的时候返回的值,避免报错")
3、删除属性
delattr(object,key)
4、属性检查是否存在
hasattr(object,key)
实例操作
类操作
from pprint import pprint
# 全局变量 参数传递 参数化
class TestDemo:
def __init__(self):
self.name = "小明"
def test_01(self):
print("这里是test01")
print('self.__dict__:', self.__dict__)
# 4、属性检查是否存在
if hasattr(self, "age"):
print('这里是hasattr(self, "age")')
age = getattr(self, "age", "getattr获取属性不存在")
print('age:', age)
else:
print("通过hasattr判断age属性不存在")
if __name__ == '__main__':
""" 实例属性,通过实例操作 """
cl = TestDemo()
print('实例 hasattr getattr =============================================')
cl.test_01()
# 这里是test01
# self.__dict__: {'name': '小明'}
# 通过hasattr判断age属性不存在
print('实例 setattr =============================================')
setattr(cl, "age", "20")
cl.test_01()
# 这里是test01
# self.__dict__: {'name': '小明', 'age': '20'}
# age: 20
print('实例delattr=============================================')
delattr(cl, "age")
cl.test_01()
# 这里是test01
# self.__dict__: {'name': '小明'}
# 通过hasattr判断age属性不存在
""" 类属性, 通过类操作"""
print('类 setattr前所有属性 =============================================')
pprint(TestDemo.__dict__)
# mappingproxy({'__dict__': <attribute '__dict__' of 'TestDemo' objects>,
# '__doc__': None,
# '__init__': <function TestDemo.__init__ at 0x00000203053158A0>,
# '__module__': '__main__',
# '__weakref__': <attribute '__weakref__' of 'TestDemo' objects>,
# 'test_01': <function TestDemo.test_01 at 0x00000203055C05E0>})
print('类 setattr 后所有属性 =============================================')
setattr(TestDemo, "address", "斗罗大陆")
pprint(TestDemo.__dict__)
# mappingproxy({'__dict__': <attribute '__dict__' of 'TestDemo' objects>,
# '__doc__': None,
# '__init__': <function TestDemo.__init__ at 0x000002B81FA458A0>,
# '__module__': '__main__',
# '__weakref__': <attribute '__weakref__' of 'TestDemo' objects>,
# 'address': '斗罗大陆',
# 'test_01': <function TestDemo.test_01 at 0x000002B81FC805E0>})
print('类 getattr=============================================')
print(getattr(TestDemo, "address"))
print(getattr(TestDemo, "address666", "getattr获取address666属性不存在"))
# 斗罗大陆
# getattr获取address666属性不存在
欢迎来到testingpai.com!
注册 关于