Python数据类型
GitHub仓库地址,同步更新。
目录
- Python数据类型
-
-
- 1. **`__init__(self, ...)`**
- 2. **`__del__(self)`**
- 3. **`__repr__(self)`**
- 4. **`__str__(self)`**
- 5. **`__add__(self, other)`**
- 6. **`__sub__(self, other)`**
- 7. **`__mul__(self, other)`**
- 8. **`__getitem__(self, key)`**
- 9. **`__setitem__(self, key, value)`**
- 10. **`__delitem__(self, key)`**
- 11. **`__iter__(self)`**
- 12. **`__next__(self)`**
- 13. **`__contains__(self, item)`**
- 14. **`__call__(self, ...)`**
- 15. **`__eq__(self, other)`**
- 16. **`__ne__(self, other)`**
- 17. **`__gt__(self, other)`**
- 18. **`__lt__(self, other)`**
- 19. **`__contains__(self, item)`**
- 总结
-
初步接触python的小伙伴可能会有疑问,为什么获取一个容器的大小不是使用collection.len()
,而是使用len(collection)
?
其实这是典型的python风格,等你熟悉之后你就会发现它非常好用。
python在执行len(collection)
的时候实际上执行的是collection.__len__()
方法。可以理解为Python语言提供了自己的API,然后我们平时自己创建类的时候只需要自己实现class.__len__()
方法,然后就可以使用python的len()
方法来获取该实例化对象的长度。
类似的obj[key]
方法调用的是obj对应类的__getitem__()
方法。
因此,可以把Python视作一个通用框架,我们只需要自己重写自己类的具体实现逻辑,就可以做到不同类之间都使用len()
方法来获取该对象的长度。
Python 中有很多以双下划线 __
开头和结尾的方法,通常被称为 魔法方法 或 特殊方法,这些方法提供了对内建操作符或内建函数的自定义支持。除了 __len__
以外,还有许多常用的魔法方法可以帮助我们定制类的行为。以下是一些常见的魔法方法:
1. __init__(self, ...)
- 描述:类的构造函数,在类实例化时自动调用。
- 用途:用于初始化对象的状态(如定义属性)。
- 示例:
class MyClass: def __init__(self, value): self.value = value
2. __del__(self)
- 描述:析构函数,在对象被销毁时自动调用(垃圾回收时)。
- 用途:清理资源,如关闭文件或数据库连接。
- 示例:
class MyClass: def __del__(self): print("Object is being destroyed")
3. __repr__(self)
- 描述:返回对象的“官方”字符串表示,通常用于调试。
- 用途:当我们调用
repr()
或者在交互式解释器中打印对象时,调用此方法。 - 示例:
class MyClass: def __repr__(self): return f"MyClass(value={ self.value})"
4. __str__(self)
- 描述:返回对象的“非正式”字符串表示,通常用于
print()
函数中。 - 用途:用于定义对象的友好字符串表示。
- 示例:
class MyClass: def __str__(self): return f"MyClass with value { self.value}"
5. __add__(self, other)
- 描述:实现加法运算符 (
+
)。 - 用途:当对象参与加法操作时,调用此方法。
- 示例:
class MyClass: def __init__(self, value): self.value