任何人都可以通过适当的例子向我解释一下黑白之间有什么区别
>>> import inspect
>>> inspect.getmembers(1)
和
>>> type(1).__dict__.items()
和
>>> dir(1)
除了它们按顺序显示递减的属性和方法编号外。1是整数(但可以是任何类型。)
编辑
>>>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}
等的字典。
object.__dict__.keys()
有其他两个所缺少的。
从以下文档inspect.getmembers()
:
当参数为类时,getmembers()不会返回元类属性(此行为是从dir()函数继承的)。
对于int.__dict__.keys()
,这是
['__setattr__', '__reduce_ex__', '__reduce__', '__class__', '__delattr__', '__subclasshook__', '__sizeof__', '__init__']
总之,dir()
并且inspect.getmembers()
基本上是相同的,同时__dict__
是完整的命名空间,包括元类的属性。
爬取的主要目标就是从非结构性的数据源提取结构性数据,例如网页。 Scrapy提供 Item 类来满足这样的需求。 Item 对象是种简单的容器,保存了爬取到得数据。 其提供了 类似于词典(dictionary-like) 的API以及用于声明可用字段的简单语法。 声明Item Item使用简单的class定义语法以及 Field 对象来声明。例如: import scrapy class Pro
Use Cases Create a shortcut for an action or a series of actions that the user repeatedly does. Create a button for custom behavior. How to create custom menu items The methods for adding custom menu
Memcached stats items 命令用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)。 语法: stats items 命令的基本语法格式如下: 实例
New in version 0.5. There are two additional directives when using this extension: .. todo:: Use this directive like, for example, note. It will only show up in the output if :confval:`todo_include_to
Module author: Daniel Bültmann New in version 0.5. There are two additional directives when using this extension: .. todo:: Use this directive like, for example, note. It will only show up in the outp
概要 形式 1: <#list sequence as item> Part repeated for each item <#else> Part executed when there are 0 items </#list> 这里: else 部分是可选的, 而且仅仅从 FreeMarker 2.3.23 版本开始支持。 sequence: 将我们想要迭代的项,算作是序列或集