Shadowsocks源码阅读笔记【1】——语言相关

1.Python版本信息:

>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=6, releaselevel='final', serial=0)

2.getopt.getopt(args, options[, long_options])进行命令行参数解析。

3.json.load(f, object_hook=_decode_dict)自定义JSON解码。

4.string.maketrans(from, to)构建字符映射转换表(长度为256):

>>> import string
>>> from_chars = 'abcdefg'
>>> to_chars = '1234567'
>>> table = string.maketrans(from_chars, to_chars)
>>> type(table)
<type 'str'>
>>> len(table)
256
>>> s = 'string abcdefg hijklmn'
>>> s.translate(table)
'strin7 1234567 hijklmn'

5.struct模块用于在Python类型的值与对应值的C语言表示间进行相互转换,用str存储二进制数据(字节序列):

>>> from struct import *
>>> pack('hhl', 1, 2, 3)
'\x01\x00\x02\x00\x03\x00\x00\x00'
>>> unpack('hhl', '\x00\x01\x00\x02\x00\x00\x00\x03')
(256, 512, 50331648)
>>> calcsize('hhl')
8

6.使用__all__控制import *from XXX import *时被导入的白名单(可用于module__init__.py):

__all__ = [ 'bar', 'spam' ]

参考:

1.https://github.com/clowwindy/shadowsocks
2.https://docs.python.org/2/index.html
3.http://zhangxc.com/2014/10/c-python-getopt
4.http://zhangxc.com/2014/10/python-json-load-encode

Shadowsocks源码阅读笔记【1】——语言相关》上有6条评论

发表评论

电子邮件地址不会被公开。