Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5096816
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: Python/Ruby

2012-02-27 13:01:28

如何打印对象的属性和方法:
  1. class header:
  2.     """dns消息头抽象类"""
  3.     def __init__(self, qid = 1):
  4.         #初始化消息头
  5.         self.qid = qid #DNS 查询封包编号,作为确认依据。长度为16 byte
  6.         self.qr = 0 #查询封包为 0 ﹔回应为 1 。长度为 1 byte
  7.         self.opcode = 0 #封包类别(QUERY, IQUERY, STATUS, Reserved)。长度为 4 bytes。
  8.         self.aa = 0 #Flags共 4 bytes ,各表示:AA(Authoritative Answer)、TC(Truncation)、RD(Recursion Desired)、RA(Recursion Avalable)
  9.         self.tc = 0
  10.         self.rd = 1
  11.         self.ra = 0
  12.         self.reserved = 0 #保留未用。
  13.         self.rcode = 0 #回应讯息,长 4 bytes ,除 0 及 6-15 保留未用外,1-5 分别为:Format Error、Server Failure、Name
  14.         self.qsection = 1 #问题部分,只支持1。
  15.         self.ansection = 0 #答案部分。
  16.         self.ausection = 0 #权力部分。
  17.         self.arsection = 0 #另外的部分。

  18.     def __str__(self):
  19.         """字符串化"""
  20.         if len(self.__dict__) >; 0:
  21.             plist = []
  22.             for field in self.__dict__:
  23.                 plist.append(str(field) + ":" + str(self.__dict__[field]))
  24.             return reduce(lambda x,y: x + "\n" + y, plist)
  25.         else:
  26.             return ""

  27. test=header()

  28. print test
阅读(2248) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~