当前位置: 首页 > news >正文

python中常用的内置属性built-in attributes

1. __dict__

  • 用途:用于存储对象的可写属性。
  • 示例
class Person:def __init__(self, name, age):self.name = nameself.age = agep = Person("Alice", 30)
print(p.__dict__)  # 输出: {'name': 'Alice', 'age': 30}

2. __class__

  • 用途:指向创建对象的类。
  • 示例
num = 42
print(num.__class__)  # 输出: <class 'int'>

3. __name__

  • 用途:表示类、函数、模块的名称。
  • 示例
def greet():passprint(greet.__name__)  # 输出: 'greet'

4. __doc__

  • 用途:用于存储文档字符串(docstring)。
  • 示例
def add(a, b):"""返回两个数的和"""return a + bprint(add.__doc__)  # 输出: '返回两个数的和'

5. __module__

  • 用途:表示定义对象的模块名称。
  • 示例
from datetime import datetimedt = datetime.now()
print(dt.__module__)  # 输出: 'datetime'

6. __bases__

  • 用途:是一个包含基类的元组,仅对类有效。
  • 示例
class A:passclass B(A):passprint(B.__bases__)  # 输出: (<class '__main__.A'>,)

7. __mro__

  • 用途:显示方法解析顺序,仅对类有效。
  • 示例
class A:passclass B(A):passclass C(B):passprint(C.__mro__)  # 输出: (<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>)

8. __slots__

  • 用途:限制类能添加的属性。
  • 示例
class Point:__slots__ = ['x', 'y']p = Point()
p.x = 10  # 允许
p.y = 20  # 允许
p.z = 30  # 报错: AttributeError

9. __file__

  • 用途:表示模块的文件路径,不过它仅对模块有效。
  • 示例
import os
print(os.__file__)  # 输出: '/usr/lib/python3.9/os.py'(路径可能会因系统不同而有差异)

10. __str____repr__

  • 用途:它们是对象的字符串表示形式。
  • 示例
class Person:def __init__(self, name):self.name = namedef __str__(self):return f"Person({self.name})"p = Person("Bob")
print(p)  # 输出: 'Person(Bob)'

11. __len__

  • 用途:用于返回对象的长度,一般是通过 len() 函数来调用。
  • 示例
class MyList:def __init__(self, items):self.items = itemsdef __len__(self):return len(self.items)m = MyList([1, 2, 3])
print(len(m))  # 输出: 3

12. __call__

  • 用途:使对象可以像函数一样被调用。
  • 示例
class Adder:def __call__(self, a, b):return a + badd = Adder()
print(add(3, 4))  # 输出: 7

总结

内置属性是 Python 语言的重要组成部分,它们为对象提供了元数据和特殊行为。不过,你应当谨慎使用这些属性,因为直接操作它们可能会破坏对象的封装性。在实际的编程过程中,建议优先使用公共 API,而不是直接访问内置属性。

相关文章:

  • 《高等数学》(同济大学·第7版) 的 详细章节目录
  • 10.安卓逆向2-frida hook技术-frida基本使用-frida指令(用于hook)
  • DeepSeek API流式输出与多轮对话示例
  • DFS入门刷题
  • OD 算法题 B卷【模拟消息队列】
  • Arm处理器调试采用jlink硬件调试器的命令使用大全
  • 人工智能在智能供应链中的创新应用与未来趋势
  • 2024年ESWA SCI1区TOP,自适应学习灰狼算法ALGWO+无线传感器网络覆盖优化,深度解析+性能实测
  • 开源版 PyMOL 如何绘制 Galidesivir 分子结构 ?
  • 项目:贪吃蛇实现
  • 流媒体协议分析:流媒体传输的基石
  • Jinja2 模板继承机制
  • Mybatis ORM SpringORM
  • 【代码坏味道】膨胀类 Bloaters
  • Go语言的context
  • 《高等数学》(同济大学·第7版) 第一节《映射与函数》超详细解析
  • 【算法】递归与分治策略
  • Cesium快速入门到精通系列教程一
  • 【Linux】进程地址空间揭秘(初步认识)
  • 【计算机网络】 ARP协议和DNS协议
  • 牛天下网站建设/谷歌是如何运营的
  • 做网站的目标是什么/百度一下浏览器
  • 专业网站设计模板/seo优化宣传
  • 网站建设 拖欠尾款/百度快速seo
  • 建筑网站排行/怎么提高关键词搜索权重
  • 服装定制店名怎么取/seo优化师就业前景