__dict__方法

Python相关语法

第一章:Yield方法与Return方法
第二章: __getitem__方法 与 __setitem__方法
__contains__方法、__item__方法、__next__方法

第三章:__dict__方法与__odict__方法
第四章:__name__方法



1.__dict__方法代码

class MyClass:
    class_attr = "Hello"  # 类属性

    def __init__(self):
        self.instance_attr = "World"  # 实例属性
        self.name = "John"
        self.age = 30

obj = MyClass()

# 访问实例属性
print(obj.instance_attr)  
# 输出: World

# 访问类属性
print(MyClass.class_attr)  
# 输出: Hello

# 使用 __dict__ 访问实例属性
instance_attrs = obj.__dict__
print(instance_attrs)  
# 输出: {  'instance_attr': 'World', 
        #  'name': 'John', 
        #  'age': 30}

# 使用 __dict__ 访问类属性
class_attrs = MyClass.__dict__
print(class_attrs)  
# 输出: 
# {'__module__': '__main__', 
#  'class_attr': 'Hello', 
#  '__init__': <function MyClass.__init__ at 0x7f6285fc3e60>, 
#  '__dict__': <attribute '__dict__' of 'MyClass' objects>, 
#  '__weakref__': <attribute '__weakref__' of 'MyClass' objects>, 
# '__doc__': None}
  1. 我们创建了一个 MyClass 类,其中包含一个类属性 class_attr 和一个实例属性 instance_attr。我们可以通过类名或实例来访问属性。同时,我们还可以使用 __dict__ 属性来访问对象的属性字典,以获得属性的名称和对应的值。
  2. 请注意,使用 __dict__ 属性访问属性并不是常规做法,通常我们会直接通过对象或类来访问属性。__dict__属性在某些特殊情况下可能会被用到,例如在需要动态获取对象属性的情况下,或者在进行对象反射和调试时。

2. __dict__方法介绍

  1. __dict__方法 是一个内置的特殊方法(method),用于获取包含对象属性和对应值的字典。该方法在对象中自动生成,用于存储对象的实例属性。
  1. 当我们通过对象的实例访问 __dict__ 方法时,它返回一个字典,其中包含对象的所有实例属性和对应的值
  1. __dict__ 方法仅用于访问对象的实例属性。它不会返回类属性(定义在类级别的属性),因为类属性是共享的,对所有类的实例都相同。如果要访问类属性,应该使用类名或实例直接访问。
  1. 总结起来,__dict__ 方法提供了一种方便的方式来获取对象的实例属性字典。通过检查该字典,我们可以了解对象的属性及其对应的值。在某些情况下,我们可以利用 __dict__ 方法来动态获取和操作对象的属性。

3.__odict__方法

__odict__方法需要自己定义的,但是OrderedDict类的思想与__odict__方法的思想是一致的

from collections import OrderedDict

od = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3

for key, value in od.items():
    print(key, value)

# a 1
# b 2
# c 3
  1. __odict__方法 是一个示例中使用的自定义属性名,可能是某些代码库或自定义类中定义的特殊属性。这个属性并非 Python 内置的特性,所以无法直接使用。
  1. 对于有序字典的功能,Python 提供了 collections 模块中的 OrderedDict 类OrderedDict 类继承自普通字典,但保持插入顺序,因此可以按照插入顺序迭代键值对
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值