-
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)
返回True
issubclass(int, numbers.Real)
或issubclass(float, Complex)
返回True
issubclass(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)
```