-
numbers模块numbers模块主要是定义一些数字类型的抽象基类,即Abstract Base Classes (ABCs) for numbers。通过numbers定义的数字类型的继承关系如下如所示:Number | Complex | \ | \ Real complex | \ | \ Rational float | Integral | \ | \ int long因此:
issubclass(int, numbers.Integral)或issubclass(long, numbers.Integral)返回Trueissubclass(int, numbers.Real)或issubclass(float, Complex)返回Trueissubclass(int, float)或issubclass(int, complex)返回False
-
textwrap模块textwrap模块的主要功能是格式化输出的字符串的格式。 -
calendar模块tornado.httputil模块的format_timestamp函数,可以将timestamp/time.struc_time/datetime.datetime的对象格式化成HTTP格式的时间格式。
主要使用的是calendar.timegm函数。该函数和time.gmtime函数是互为逆反的。>>> import time >>> cur = time.time() >>> cur 1446812390.056556 >>> cur_gm = time.gmtime(cur) >>> cur_gm time.struct_time(tm_year=2015, tm_mon=11, tm_mday=6, tm_hour=12, tm_min=19, tm_sec=50, tm_wday=4, tm_yday=310, tm_isdst=0) >>> import calendar >>> calendar.timegm(cur_gm) 1446812390
并且datetime.datetime格式的数据也能通过datetime.datetime.utctimetuple转换成time.time_struct格式的时间数据。因此也可以通过calendar.timegm函数返回timestamp。
4. email.utils.formatdate函数
按照RFC2822格式(个人感觉跟iso8601格式很像)格式化timestamp。通过email.utils.formatdate(timestamp, usegmt=True)可以返回满足HTTP协议的时间格式
5. collections.namedtuple类
该类实现了命名tuple。调用传入的第一个参数是一个tuple的子类,并且这个子类有具体使用如下所示:
```
>>> Point = namedtuple('Point', ['x', 'y'])
>>> Point.__doc__ # docstring for the new class
'Point(x, y)'
>>> p = Point(11, y=22) # instantiate with positional args or keywords
>>> p[0] + p[1] # indexable like a plain tuple
33
>>> x, y = p # unpack like a regular tuple
>>> x, y
(11, 22)
>>> p.x + p.y # fields also accessable by name
33
>>> d = p._asdict() # convert to a dictionary
>>> d['x']
11
>>> Point(**d) # convert from a dictionary
Point(x=11, y=22)
>>> p._replace(x=100) # _replace() is like str.replace() but targets named fields
Point(x=100, y=22)
```