RFC3261 python源码分析 1

在学习一门语言的基本语法后下一步做什么呢?我觉得就是应该阅读真实项目的代码,这样才能从玩具型的小程序转向真实世界的系统代码。进而在真实世界中使用它。

最近学习了python,想进一步看看实际项目中代码。看到有个开源项目是用python来实现Peer-to-Peer SIP,这和我的工作正好相关。所以打算先对其源码做一次详尽的剖析。

大概每次剖析20行代码。


首先是RFC3261协议实现。在RFC3261.py中。

# Copyright (c) 2007, Kundan Singh. All rights reserved. See LICENSING for details.
# @implements RFC3261 (SIP)
# @implements RFC3581 (rport)

'''
The session initiation protocol (SIP) as per RFC 3261.
In my code there is no performance optimization, if it hurts the style and
compactness of the code.
'''

这里#开始的是注释行。说明了该源码的版权信息和实现了哪些协议。

三引号这一段在python中被称为"block string",可以用来表达多行的字符串。



import re, socket, traceback, uuid
from kutil import getlocaladdr
from rfc2396import isIPv4, isMulticast, isLocal, isPrivate, URI,Address
from rfc2617import createAuthorization
from socketimport gethostbyname# TODO: should replace with getifaddr, SRV, NAPTR or similar

上面几行代码是关于python的模块机制。在python中每个文件就是一个模块。要引用一个模块内的名字,可以用下面几种格式:

import [module]

from [module] import [name]

from [module] import *

后面两种方式会把模块的特定或所以名字拷贝到当前的范围。这样可以直接使用引用的名字。而第一种方式则需要用module.name格式引用。


_debug=False


模块变量,表示是否是debug模式。这里的命名使用_表示模块变量,符合google python style:

http://google-styleguide.googlecode.com/svn/trunk/pyguide.html#Naming






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值