Python小技巧

1:

    urlps = urlparse.urlparse(RtmpServer)
    HOST = urlps.hostname
    if urlps.port:
        PORT = urlps.port
    else:
        PORT = 1935

urlps.port要么为None,要么为一个非0的整数,所以最后的if else可以这样写:

PORT = urlps.port or 1935

 

2: 使用带步进反向切片翻转字符串

>>> astr = "hello,world"
>>> astr[::-1]
'dlrow,olleh'

 

3:使用subprocess启动子进程,在父进程(正常或非正常)终止时,保证子进程也退出的方法:

import signal
import ctypes
libc = ctypes.CDLL("libc.so.6")
def set_pdeathsig(sig = signal.SIGTERM):
    PR_SET_PDEATHSIG = 1
    def callable():
        return libc.prctl(PR_SET_PDEATHSIG, sig)
    return callable
p = subprocess.Popen(args, preexec_fn = set_pdeathsig(signal.SIGTERM))

 这里其实主要是调用Linux下的系统调用prctl实现的。因此这种方法只适合于linux系统。

 

4:查看python标准库源码:

https://github.com/python/cpython

 

5:

posted @ 2017-12-08 16:48  gqtc  阅读(430)  评论(0编辑  收藏  举报