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}
- 我们创建了一个
MyClass 类
,其中包含一个类属性 class_attr
和一个实例属性 instance_attr
。我们可以通过类名或实例来访问属性。同时,我们还可以使用__dict__ 属性
来访问对象的属性字典,以获得属性的名称和对应的值。 - 请注意,使用
__dict__ 属性
访问属性并不是常规做法,通常我们会直接通过对象或类来访问属性。__dict__属性
在某些特殊情况下可能会被用到,例如在需要动态获取对象属性的情况下,或者在进行对象反射和调试时。
2. __dict__方法介绍
__dict__方法
是一个内置的特殊方法(method),用于获取包含对象属性和对应值的字典
。该方法在对象中自动生成,用于存储对象的实例属性。
- 当我们通过对象的实例
访问 __dict__ 方法
时,它返回一个字典
,其中包含对象的所有实例属性和对应的值
__dict__ 方法
仅用于访问对象的实例属性
。它不会返回类属性(定义在类级别的属性),因为类属性是共享的,对所有类的实例都相同。如果要访问类属性,应该使用类名或实例直接访问。
- 总结起来,
__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
__odict__方法
是一个示例中使用的自定义属性名,可能是某些代码库或自定义类中定义的特殊属性。这个属性并非 Python 内置的特性
,所以无法直接使用。
- 对于有序字典的功能,Python 提供了
collections 模块
中的OrderedDict 类
。OrderedDict 类继承自普通字典,但保持插入顺序,因此可以按照插入顺序迭代键值对
。