python Day8

#isinstance

n = 1

print isinstance(n,int)                       #n是对象,int是类,这里的类是基类,条件也成立

 

#issubclass

class A:

    pass

class B(A):

    pass

print issubclass(B,A)                         #查看B是否是A的派生类

 

###异常处理

        

try:

    #正常逻辑代码

    inp = raw_input(">>")

    data = int(inp)

#    raise Exception('123123')

except Exception,e:                                    #Exception捕获所有error  可以指定捕获error类型,如KeyError NameError

    #逻辑代码执行错误时执行

    print "请输入数字",e

else:

    #逻辑代码没有错时执行

    pass

finally:

    #不管逻辑代码结果,永远执行

    pass

        

#自定义异常处理

class TestError(Exception):

    def __init__(self,msg=None):

        self.message = msg

    def __str__(self):                                 #print 对象  返回__str__的结果

        if self.message:

            return self.message

        else:

            return "test error"

 

try:

    raise TestError('error')

except Exception,e:

    print e

        

###assert 断言  如果条件都满足继续执行

 

###getattr 反射

home.py

def f1():

    return "f1"

def f2():

    return "f2"

def f3():

    return "f3"

def f4():

    return "f4"

def f5():

    return "f5"

 

main.py

import home

print 'url----'

url = raw_input('>>')

controller,action = url.split('/')

modlus = __import__(controller)

try:

    func = getattr(modlus,action)

    ret = func()

    print ret

except Exception,e:

    print "404"

 

##webdemo

from wsgiref.simple_server import make_server

 

def RunServer(environ, start_response):

    start_response('200 OK', [('Content-Type', 'text/html')])

    url = environ['PATH_INFO']

   

    temp = url.split('/')[1]

    import home

 

    is_exist = hasattr(home, temp)               #hasattr 判断容器是否有这个成员

    if is_exist:

        func = getattr(home, temp)            #getattr 获取某个容器的成员

        ret = func()

        return ret

    else:

        return '404 not found'

 

if __name__ == '__main__':

    httpd = make_server('', 8001, RunServer)

    print "Serving HTTP on port 8001..."

    httpd.serve_forever()

        

###getattr,setattr,delattr,hasattr     操作内存中某个容器中的元素

import home

print dir(home)

print hasattr(home,'dev')

print getattr(home,'f1')

setattr(home,'f8','ffff8')

delattr(home,'f5')

print dir(home)

 

 

###socket

import socket

def main():

    # 创建socket对象

    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 监听端口

    sock.bind(('127.0.0.1',8909))

    # 开始监听,

    sock.listen(5)

 

    while True:

        # 阻塞,deng 。。。。

        # 直到有请求连接

        print '....'

        connection, address = sock.accept()

        # connection,代表客户端socket对象,

        # address,客户端IP地址

        # handle_request(connection)

        buf = connection.recv(1024)

        print buf

        connection.send("HTTP/1.1 200 OK\r\n\r\n")

        connection.send("Hello, World")

        connection.close()

 

if __name__ == '__main__':

    main()

posted @ 2015-12-17 11:14  plzros  阅读(80)  评论(0编辑  收藏  举报