python功能函数的属性_Python帮助函数调试函数 用于获取对象的属性及属性值

版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢。https://blog.csdn.net/testcs_dn/article/details/50449112

Python帮助函数调试函数 用于获取对象的属性及属性值

刚接触Python,上篇 《Python入门》第一个Python Web程序——简单的Web服务器 中调试很不方便,不知道对象具体有什么属性,包含什么值,所以写了一个函数,用于获取对象的属性及属性值

函数代码如下:

#调试函数,用于输出对象的属性及属性值

def getAllAttrs(obj):

strAttrs = ''

for o in dir(obj):

strAttrs =strAttrs + o + ' := ' + str(getattr(obj,o)) + '
'

return strAttrs;具体应用代码:

import os#Python的标准库中的os模块包含普遍的操作系统功能

from BaseHTTPServer import HTTPServer,BaseHTTPRequestHandler #导入HTTP处理相关的模块

#调试函数,用于输出对象的属性及属性值

def getAllAttrs(obj):

strAttrs = ''

for o in dir(obj):

strAttrs =strAttrs + o + ' := ' + str(getattr(obj,o)) + '
'

return strAttrs;

#自定义处理程序,用于处理HTTP请求

class TestHTTPHandler(BaseHTTPRequestHandler):

#处理GET请求

def do_GET(self):

#页面输出模板字符串

templateStr = '''

QR Link Generator

%s

'''

self.protocal_version = 'HTTP/1.1'#设置协议版本

self.send_response(200)#设置响应状态码

self.send_header("Welcome","Contect")#设置响应头

self.end_headers()

self.wfile.write(templateStr % getAllAttrs(self))#输出响应内容

#启动服务函数

def start_server(port):

http_server = HTTPServer(('',int(port)),TestHTTPHandler)

http_server.serve_forever()#设置一直监听并接收请求

os.chdir('static')#改变工作目录到 static 目录

start_server(8000)#启动服务,监听8000端口输出如下:

MessageClass := mimetools.Message

__doc__ := None

__init__ := >

__module__ := __main__

address_string := >

client_address := ('127.0.0.1',38178)

close_connection := 1

command := GET

connection :=

date_time_string := >

default_request_version := HTTP/0.9

disable_nagle_algorithm := False

do_GET := >

end_headers := >

error_content_type := text/html

error_message_format :=

Error response

Error code %(code)d.

Message: %(message)s.

Error code explanation: %(code)s = %(explain)s.

finish := >

handle := >

handle_one_request := >

headers := Host: localhost:8000 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/47.0.2526.106 Safari/537.36 Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,en-GB;q=0.2 Cookie: bdshare_firstime=1451130349627

log_date_time_string := >

log_error := >

log_message := >

log_request := >

monthname := [None,'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']

parse_request := >

path := /

protocal_version := HTTP/1.1

protocol_version := HTTP/1.0

raw_requestline := GET / HTTP/1.1

rbufsize := -1

request :=

request_version := HTTP/1.1

requestline := GET / HTTP/1.1

responses := {200: ('OK','Request fulfilled,document follows'),201: ('Created','Document created,URL follows'),202: ('Accepted','Request accepted,processing continues off-line'),203: ('Non-Authoritative Information','Request fulfilled from cache'),204: ('No Content',nothing follows'),205: ('Reset Content','Clear input form for further input.'),206: ('Partial Content','Partial content follows.'),400: ('Bad Request','Bad request syntax or unsupported method'),401: ('Unauthorized','No permission -- see authorization schemes'),402: ('Payment Required','No payment -- see charging schemes'),403: ('Forbidden','Request forbidden -- authorization will not help'),404: ('Not Found','Nothing matches the given URI'),405: ('Method Not Allowed','Specified method is invalid for this resource.'),406: ('Not Acceptable','URI not available in preferred format.'),407: ('Proxy Authentication Required','You must authenticate with this proxy before proceeding.'),408: ('Request Timeout','Request timed out; try again later.'),409: ('Conflict','Request conflict.'),410: ('Gone','URI no longer exists and has been permanently removed.'),411: ('Length Required','Client must specify Content-Length.'),412: ('Precondition Failed','Precondition in headers is false.'),413: ('Request Entity Too Large','Entity is too large.'),414: ('Request-URI Too Long','URI is too long.'),415: ('Unsupported Media Type','Entity body in unsupported format.'),416: ('Requested Range Not Satisfiable','Cannot satisfy request range.'),417: ('Expectation Failed','Expect condition could not be satisfied.'),100: ('Continue','Request received,please continue'),101: ('Switching Protocols','Switching to new protocol; obey Upgrade header'),300: ('Multiple Choices','Object has several resources -- see URI list'),301: ('Moved Permanently','Object moved permanently -- see URI list'),302: ('Found','Object moved temporarily -- see URI list'),303: ('See Other','Object moved -- see Method and URL list'),304: ('Not Modified','Document has not changed since given time'),305: ('Use Proxy','You must use proxy specified in Location to access this resource.'),307: ('Temporary Redirect',500: ('Internal Server Error','Server got itself in trouble'),501: ('Not Implemented','Server does not support this operation'),502: ('Bad Gateway','Invalid responses from another server/proxy.'),503: ('Service Unavailable','The server cannot process the request due to a high load'),504: ('Gateway Timeout','The gateway server did not receive a timely response'),505: ('HTTP Version Not Supported','Cannot fulfill request.')}

rfile :=

send_error := >

send_header := >

send_response := >

server :=

server_version := BaseHTTP/0.3

setup := >

sys_version := Python/2.7.10

timeout := None

version_string := >

wbufsize := 0

weekdayname := ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']

wfile :=

登录后自动展开

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值