前言
记录动态设置属性的操作
一、动态添加属性
内置函数:
动态添加属性:setattr(obj,name,value)
参数1:对象
参数2:属性名
参数3:属性值
1、对象动态添加属性
# class A:
# pass
# # 实例化一个对象
# a = A()
问题一:如何把上面输入的name和value的值,设置为对象a的属性,和属性值?
# name = input('属性名:')
# value = input('属性值:')
# setattr(a, name, value)
问题二:如何把["sex","男"]中的两个值,设置为对象a的属性和属性值?
# li = ["sex","男"]
# setattr(a, li[0], li[1])
# # 获取对象的属性字典:
# print(a.__dict__)
2、动态添加类属性
class A:
pass
问题一:如何把上面输入的name和value的值,设置A的类属性,和属性值?
name = input('属性名:')
value = input('属性值:')
setattr(A, name, value)
# 输出类的属性字典:
print(A.__dict__)
3、动态删除属性
# class Demo:
# name = '木森'
# age = 18
# sex = '男'
#
#
# print(Demo.__dict__)
# name = input('请输入你要删除的属性:')
#
# # 动态删除属性
# delattr(Demo, name)
#
# # 常规删除属性的语法
# # del Demo.name
#
# print("---------------删除后-------------------")
# print(Demo.__dict__)
动态删除:
常规删除:
4、动态判断属性是否存在
# class Demo:
# name = '木森'
# age = 18
# sex = '男'
#
#
# print(Demo.__dict__)
# name = input('请输入你要操作的属性:')
# # 判断对象是否拥有该属性
# res = hasattr(Demo,name)
#
# print("判断的结果:",res)
5、动态查找(获取)属性
注意:获取的属性是获取这个属性的值
class Demo:
name = '木森'
age = 18
sex = '男'
print(Demo.__dict__)
name = input('请输入你要获取的属性:')
# 判断对象是否拥有该属性
res = getattr(Demo,name, 18)
print("判断的结果:",res)
如果没有属性:
总结
暂无