Python使用__dict__查看对象内部属性的名称和值

这篇具有很好参考价值的文章主要介绍了Python使用__dict__查看对象内部属性的名称和值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、定义一个类

class MyObj:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def myFunc(self):
        pass


mo = MyObj('Boby', 24)
print(mo)
print(mo.__dict__)

#结果
<__main__.MyObj object at 0x000000815C364518>

{'name': 'Boby', 'age': 24}

从以上代码来看;直接使用mo.__dict__即可获取该实例的属性值;

2、还可以设置属性

还是上面的类;

mo = MyObj('Boby', 24)

# 修改属性
mo.__dict__['name'] = 'jason'
mo.__dict__['age'] = 42
print(mo.__dict__)


#结果
{'name': 'jason', 'age': 42}

3、添加属性

mo = MyObj('Boby', 24)

mo.__dict__['name'] = 'jason'
mo.__dict__['age'] = 42

#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
#添加属性
mo.__dict__['grade'] = 3
mo.__dict__['address'] = 'BeiJing'
print(mo.__dict__)


#结果
{'name': 'jason', 'age': 42, 'grade': 3, 'address': 'BeiJing'}

4、总结

我们知道,C、Java等面向对象的编程语言,在进行类的初始化时,对与类的限制是很严格的,这样做的好处是安全,我们试想一下,如果创建的一个类在任何情况下,会被任何外部或者内部方法调用,并且可以轻易改动它,这样的做法是很危险的。

比如上面的mo实例,我们执行下面的代码:

mo.__dict__.clear()

print(mo.__dict__)

我们创建的实例成了空白;

因此,尽量不要使用obj.__dict__这个对象来设置键值对或者要小心使用;文章来源地址https://www.toymoban.com/news/detail-801810.html

到了这里,关于Python使用__dict__查看对象内部属性的名称和值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C#】【Equals和ReferenceEquals】关于对象和值的问题

    在学习C#中的记录类型时,对出现的Equals和ReferenceEquals得到的不同结果表示不理解,随即进行相关资料查找。   值类型 == : 比较两者的“内容”是否相同,即“值”是否一样 Equals:比较两者的“内容”是否相同,即“值”是否一样 ReferenceEquals:返回false,因为会对值类型进行装

    2024年02月08日
    浏览(40)
  • __dict__属性

    __dict__ 是 Python 中的一个特殊属性,通常存在于大多数 Python 对象中,用于存储该对象的可变属性。 以下是关于 __dict__ 的一些关键点和详细信息: 存储属性 :对于大多数自定义的 Python 对象, __dict__ 属性包含了这个对象的属性及其对应的值。它以字典的形式存储。 动态属性

    2024年02月13日
    浏览(30)
  • 在使用TensorFlow的时候内部报错:内部某个方法或属性不存在

    看到TensorFlow内部封装的方法报错的时候,我的第一反应是版本不匹配,立马去搜了对应版本,按照网上给的TensorFlow 2.2.0+keras 2.3.1 +python 3.7,反反复复安装、卸载、升级、降低版本了很多回还是八行,就在心态快要爆爆爆炸的时候,试了下面这条命令: 然后再运行程序,成功

    2024年02月14日
    浏览(35)
  • python中的os.mkdir和os.makedirs的使用区别,以及如何查看某个模块中的某些字母开头的属性方法

    os.mkdir(dir_name) :用于 新建文件夹 ,当要新建的文件夹已经存在的时候,就会报错: FileExistsError: [Errno 17] File exists: 因此,我们一般在新建一个文件夹的时候,会和 os.path.exists() 集合使用,如下: 1、判断一个 文件夹是否存在 ,如果不存在就新建它,如果已经存在就跳过:

    2023年04月08日
    浏览(55)
  • 使用ADB命令查看手机已安装应用详细信息,包含应用名称

    最近有个需求需要获取手机上已安装应用列表,需要包含应用名称(非包名)、版本号、包名等信息,记录一下解决过程。 使用adb命令查看设备已安装应用列表很简单 但命令只能获取到应用包名 想要获取应用的详细信息需要使用以下命令 但查看输出发现,该命令可以获取到

    2024年02月15日
    浏览(56)
  • python入门基础(13)--类、对象、全局函数,类内部调用

        面向过程的编程语言,如C语言,所使用的数据和函数之间是没有任何直接联系的,它们之间是通过函数调用提供参数的形式将数据传入函数进行处理。 但可能因为错误的传递参数、错误地修改了数据而导致程序出错,甚至是崩溃。当需要修改或维护程序时要从程序提供

    2024年02月08日
    浏览(45)
  • 【Python】面向对象 - 封装 ② ( 访问私有成员 | 对象无法访问私有变量 / 方法 | 类内部访问私有成员 )

    在下面的 Python 类 Student 中 , 定义了私有的成员变量 , 该私有成员变量 , 只能在类内部进行访问 , 类的外部无法进行访问 ; 在 类外部 创建的 Student 实例对象 , 是无法访问 __address 私有成员的 ; 使用 实例对象 访问 类的私有成员 , 编译时不会报错 , 但是运行时会报错 最后一行代

    2024年02月13日
    浏览(49)
  • 在 Python 中为对象添加属性

    我们将介绍如何在 Python 中为对象添加属性。 我们还将通过示例介绍如何在 Python 中更改对象的属性。 在 Python 中,我们时常使用对象,因为 Python 是一种面向对象的语言。 对象使我们的代码可重用并易于实现复杂的结构。 对象的主要部分是它们的属性。 属性定义某个对象的

    2024年02月08日
    浏览(39)
  • 【JavaScript】对象 ② ( 对象使用 | 调用对象属性 | 调用对象方法 | 变量与属性区别 | 函数与方法区别 )

    使用字面量创建对象要点 : 在上一篇博客 【JavaScript】对象 ① ( 对象概念 | 对象使用场景 | 使用字面量创建对象 | 空对象字面量 | 小括号 / 中括号 / 大括号 作用 ) 中 , 介绍了 使用 字面量 创建对象 , 有如下要点 : 键值对 : 对象字面量 中的 属性 和 方法 都是以 \\\" 键值对 \\\" 的形

    2024年04月14日
    浏览(54)
  • 五分钟快速掌握Python中dict(字典)的详细使用方法

    目录 概念: dict的定义格式: dict的使用方法: 定义空字典的两种方法: dict.clear:  copy: copy:浅拷贝 deepcopy:深拷贝 get:  items:  keys:  popitem:  setdefault:  update:  values: dict----dictionary  字典: 根据去获取内容 不能重复 必须是不可变的数据类型

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包