Python之类和对象(动态属性设置)

本文介绍了如何在Python中动态地添加、删除和检查对象及类的属性,包括使用setattr添加属性,delattr删除属性,hasattr判断属性存在,以及getattr获取属性值。示例涵盖了从用户输入获取属性名和值,到动态修改类和实例属性的各种情况。
摘要由CSDN通过智能技术生成

文章目录

  • 前言
  • 一、动态添加属性
    • 1、对象动态添加属性
    • 2、动态添加类属性
    • 3、动态删除属性
    • 4、动态判断属性是否存在
    • 5、动态查找(获取)属性
  • 总结


前言

记录动态设置属性的操作


一、动态添加属性

内置函数:
动态添加属性: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)

如果没有属性:


总结

暂无

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值