In [25]: callable(a)
Out[25]: False
In [26]: class A:
…: def call(self, *args, **kwargs):
…: pass
…:
In [27]: a = A()
In [28]: callable(a)
Out[28]: True
### chr(*i*)
返回表示 Unicode 代码点为整数 i 的字符的字符串。例如,`chr(97)` 返回字符串 `'a'`,而 `chr(8364)` 返回字符串 `'€'`。这是 `ord()` 的逆过程。
参数的有效范围是从 0 到 1,114,111(基于 16 的 0x10FFFF)。如果超出这个范围,将会抛出 ValueError。
### @classmethod
将方法转换为类方法。
类方法将类作为第一个参数接收(隐式的),就像实例方法接收实例一样。为了声明一个类方法,习惯用法如下:
class C:
@classmethod
def f(cls, arg1, arg2, …): …
!> 注意:类方法和静态方法不是一个概念
### class complex([*real*[, *imag*]])
返回值为 real + imag\*1j 的复数或者将字符串或数字转换为复数。如果第一个参数是一个字符串,它将被解释为一个复数,并且该函数必须在没有第二个参数的情况下被调用。第二个参数不能是一个字符串。每个参数可以是任何数字类型(包括复数)。如果省略了 imag,它将默认为零,并且构造函数用作像 int 和 float 这样的数字转换。如果两个参数均被省略,则返回 0j。
!> 从字符串转换时,该字符串不得在 `+` 或 `-` 运算符周围包含空格。例如,`complex('1+2j')` 很好,但 `complex('1 + 2j')` 会引发 `ValueError`。
### delattr(object, name)
参数是一个对象和一个字符串。该字符串必须是对象属性之一的名称。该函数删除指定的属性(只要该对象允许)。例如, `delattr(x, 'foobar')` 等价于 `del x.foobar`。
### dict
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
创建一个新的字典
In [38]: dict(name=‘jack’,age=18)
Out[38]: {‘name’: ‘jack’, ‘age’: 18}
In [39]: dict({‘name’: ‘jack’}, age=18)
Out[39]: {‘name’: ‘jack’, ‘age’: 18}
In [40]: dict([(‘name’, ‘jack’),(‘age’, 18)])
Out[40]: {‘name’: ‘jack’, ‘age’: 18}
### dir([*object*])
尝试返回 object 的有效属性列表。如果没有参数,则返回当前本地作用域中的名称列表。
如果对象具有名为 `__dir__()` 的方法,则将调用此方法,并且必须返回属性列表。这允许实现自定义 `__getattr__()`或 `__getattribute__()` 函数的对象自定义 `dir()` 报告其属性。
默认的 `dir()` 机制对不同类型的对象有不同的表现,因为它试图产生最相关的信息,而不是完整的信息:
* 如果对象是模块对象,则列表包含模块属性的名称。
* 如果对象是一个类型或类对象,则该列表包含其属性的名称,并递归地显示其基础的属性。
* 否则,该列表包含对象的属性名称,其类属性的名称以及其类的基类的属性的递归。
结果列表按字母顺序排序。例如:
import struct
dir() # show the names in the module namespace
[‘builtins’, ‘name’, ‘struct’]
dir(struct) # show the names in the struct module
[‘Struct’, ‘all’, ‘builtins’, ‘cached’, ‘doc’, ‘file’,
‘initializing’, ‘loader’, ‘name’, ‘package’,
‘_clearcache’, ‘calcsize’, ‘error’, ‘pack’, ‘pack_into’,
‘unpack’, ‘unpack_from’]
class Shape:
… def dir(self):
… return [‘area’, ‘perimeter’, ‘location’]
s = Shape()
dir(s)
[‘area’, ‘location’, ‘perimeter’]
### divmod(*a*, *b*)
以两个(非复数)数字作为参数,并在使用整数除法时返回由它们的商和余数组成的一对数字。使用混合操作数类型时,适用二元算术运算符的规则。对于整数,结果与 `(a // b, a % b)` 相同。对于浮点数,结果是 `(q, a % b)`,其中 q 通常是 `math.floor(a / b)`,但可能小于 1。在任何情况下, `q * b + a % b` 都非常接近 a,如果 `a % b` 不为零,则它具有与 b 相同的符号,并且 `0 <= abs(a % b) < abs(b)`。
In [53]: divmod(10, 3)
Out[53]: (3, 1)
In [54]: divmod(10.1, 3)
Out[54]: (3.0, 1.0999999999999996)
### enumerate( *iterable*, *start=0*)
返回一个枚举对象。 iterable 必须是一个序列,一个迭代器或其他支持迭代的对象。由 `enumerate()` 返回的迭代器的 `__next__()` 方法返回一个元组,该元组包含一个计数(从 start 开始,默认值为 0)以及遍历迭代获得的值。
seasons = [‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’]
list(enumerate(seasons))