spect.getmembers() 与 __dict__.items() 与 dir()

2023-12-31

谁能用足够的例子向我解释黑白有什么区别

>>> import inspect
>>> inspect.getmembers(1)

and

>>> type(1).__dict__.items()

and

>>> dir(1)  

只是它们显示的属性和方法数量按顺序递减。 1 是整数(但可以是任何类型。)


EDIT

>>>obj.__class__.__name__  #gives the class name of object  
>>>dir(obj)                #gives attributes & methods  
>>>dir()                   #gives current scope/namespace
>>>obj.__dict__            #gives attributes

dir()允许您通过定义来自定义对象报告的属性__dir__().

从手册来看,如果__dir__()没有定义:

如果该对象是模块对象,则列表包含模块属性的名称。

如果对象是类型或类对象,则列表包含其属性的名称以及其基的属性的递归名称。

否则,该列表包含对象的属性名称、其类的属性名称以及其类的基类的属性的递归名称。

这也是inspect.getmembers()返回,除了它返回元组(name, attribute)而不仅仅是名字。

object.__dict__是一个形式的字典{key: attribute, key2: atrribute2} etc.

object.__dict__.keys()拥有其他两个所缺乏的东西。

从文档开始inspect.getmembers():

当参数是类时,getmembers() 不返回元类属性(此行为继承自 dir() 函数)。

For int.__dict__.keys(), 这是

['__setattr__', '__reduce_ex__', '__reduce__', '__class__', '__delattr__', '__subclasshook__', '__sizeof__', '__init__']

总而言之,dir() and inspect.getmembers()基本相同,同时__dict__是包括元类属性的完整命名空间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spect.getmembers() 与 __dict__.items() 与 dir() 的相关文章

随机推荐

  • 如何找到浏览器的代理设置?

    我正在为 Windows 编写一个命令行工具 它使用 libcurl 从互联网下载文件 显然 当用户位于代理服务器后面时 下载不起作用 因为需要配置代理 然而 我希望我的工具尽可能简单 并且不必给用户带来配置代理的负担 我的工具甚至没有配置
  • SELECT 类型查询是唯一可以嵌套的类型吗?

    是否可以将非选择查询 更新 插入 删除 嵌入到另一个查询中 类似于 选择内的插入 A single query select such and such from where insert into 基本答案 有CTEs 通用表表达式 ht
  • 如何从“workflow.Context”获取“context.Context”?

    我正在实现一个 Cadence 工作流程 需要使用以下命令调用函数context Context参数 我该如何获得context Context来自workflow Context 难道这只是一个问题ctx context Context
  • Unity HoloLens 应用程序作为 Windows 应用程序而不是 AR 执行

    我正在使用以下工具构建 HoloLens Unity 应用程序 统一 2018 3 14f1 视觉工作室 2017 Microsoft MixedReality Toolkit Unity Foundation v2 0 0 RC1 Ref
  • 动态表单上的 MVC 模型验证?

    我有以下模型 public class FileModel public int Id get set Required ErrorMessage Required StringLength 100 ErrorMessage Max is
  • 在 Android 中添加自定义字体到主题

    有没有办法在 Android 的主题中添加自定义字体 我读过了快速提示 自定义 Android 字体 http mobile tutsplus com tutorials android customize android fonts 但这
  • Uint8Array 到 ArrayBuffer

    所以我有一个 ArrayBuffer 它是我用新的 HTML5 文件阅读器作为 ArrayBuffer 读取的文件的文件内容 并且我可以通过执行以下操作将 ArrayBuffer 转换为 Uint8Array ab established
  • MVC Core2 中的 Ajax 调用错误请求

    我正在将一个网站折射到 MVC Core 2 对于我的大多数 Ajax 调用 我一直使用 Get 速记 没有任何问题 我有一个 AJAX 调用需要使用 ajax 并且由于某种原因我不断收到错误的请求错误 请记住 此代码当前正在 aspx 网
  • 如何更改列表视图文本颜色

    在我的应用程序中 我想更改列表视图文本颜色 在本例中 我使用 XML 文件进行列表视图 是否可以 如果是 请举例说明 性别 xml
  • C 中变量名后的冒号[重复]

    这个问题在这里已经有答案了 可能的重复 结构体声明中的冒号是什么意思 例如 1 7 16 或 32 https stackoverflow com questions 1604968 what does a colon in a struc
  • 如何在 Kotlin Flow 中过滤列表

    我正在使用替换当前的实现RxJava to Coroutines and Flow 我在使用一些时遇到一些问题Flow运营商 我正在尝试过滤 a 中的项目列表Flow在提供收集之前 Flow
  • Passport.authenticate() 使用 Promise 而不是自定义回调

    passport authenticate 我如何定义一个Promise而不是使用定制球背 如何使用passport authenticate 在这里引用 http www passportjs org docs authenticate
  • 如何使用变量名称将命名元素添加到 R 向量

    我想向向量 V 添加一个元素 例如 100 并使用变量 x 的值作为新元素的名称 我知道可以这样做 V c V 100 names V length V x 但我正在寻找一种简单的单行解决方案 如果有的话 我试过 V c V as name
  • 使用 C++ 中的 PCL 在同一窗口中查看多个点云

    我有两个点云 我想在同一个窗口中对其进行可视化 include
  • TFS 2010 通过文件系统构建发布

    我在 TFS 中有一个相当大的 MVC2 项目 它在签入时自动构建 持续集成 目前 完整构建的版本已转储到我们的开发 IIS 服务器上的网络共享上 Server wwwrootLatest TFS 当然会创建很多子文件夹 因为它只是进行构建
  • 类内递归

    我试图在类语句中放置一个递归公式 class SomeNode def init self a leng len a half leng 2 self firstnode a 0 0 self child1 SomeNode a i for
  • 从外部连接到在 docker 容器内运行的服务

    我有一个服务在 docker 容器 本地机器 中运行 我可以在 Ambari 服务配置中看到服务 URL 现在我想使用本地开发环境连接到该服务 我发现我可以连接到容器内的该 URL 但是当我在本地外部使用该 URL 时 连接被拒绝 Caus
  • 为什么 vector 不是 STL 容器?

    Scott Meyers 的书第 18 条有效的 STL 改进标准模板库使用的 50 种具体方法说要避免vector
  • 专门化主模板时,更专门化意味着什么?

    C 模板特化规则中提到的特化必须比主模板更加特化 下面的 1 代码片段会导致编译错误 这表明第二行并不更专业 但最后一个片段 2 的工作看起来非常接近 1 两个代码片段都是专门的int N as 0 那么为什么第一个片段被抱怨为 不更专业
  • spect.getmembers() 与 __dict__.items() 与 dir()

    谁能用足够的例子向我解释黑白有什么区别 gt gt gt import inspect gt gt gt inspect getmembers 1 and gt gt gt type 1 dict items and gt gt gt di