python3基础篇07(面向对象7-动态属性设置)

基本规则

对象的.__dict__属性:获取对象的所有属性以字典的形式返回

动态属性设置:

内置函数:setattr(参数1,参数2,参数3):
参数1:对象
参数2:给对象要设置属性名(字符串类型)
参数3:属性值

class Cases:
    def __init__(self, case_id, title, url, data):
        self.case_id = case_id
        self.title = title
        self.url = url
        self.data = data

data = {'case_id': 1, 'title': '用例1', 'url': 'www.baudi.com', 'data': '001'}

#需求:字典中的key作为属性名,value作为属性值

case = Cases(**data)
print("--------------1--------------")
print(case)
print("-------------1---------------")

# 动态属性设置
# setattr
data = {'case_id': 1, 'title': '用例1', 'url': 'www.baudi.com', 'data': '001'}


# # 定义一个类
class Cases:
    pass
#
# # 创建了一个对象
case = Cases()
#
# 给case这个对象,设置一个name属性,值为python666
# 内置函数:setattr(参数1,参数2,参数3):
# 参数1:对象
# 参数2:给对象要设置属性名(字符串类型)
# 参数3:属性值
setattr(case, "name", "python66")

 #data1:1   data2:2   data3:3  data4:4 ....  data10:10

for i in range(1,11):
    setattr(case,"data{}".format(i),i)
print("------------2----------------")
print(case)
print(case.__dict__)#对象的.__dict__属性:获取对象的所有属性以字典的形式返回
print(case.name)
print("-------------2---------------")

for k, v in data.items():
    setattr(case, k, v)
print("------------3----------------")
print(case)
print("------------3----------------")

# 获取对象属性
print("------------4----------------")
getattr(case, "name")
#删除对象属性
delattr(case, 'case_id')
print("------------4----------------")

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值