PythonDay7

本章知识:

1.反射

2socket网络编程

反射:

反射
hasattr,判断一个对象里是否有对应的字符串的方法映射
getattr 根据字符串去获取对象里对应的方法的内存地址
setattr 通过字符串设置属性
delattr 删除属性

class Dog(object):
    def __init__(self,name):
        self.name=name
    def eat(self):
        print("%s is eating"%self.name)
d=Dog("A")
choice = input(">>").strip()
print(hasattr(d,choice))#查看方法有没有
print(getattr(d,choice))
getattr(d,choice)()#调用


if hasattr(d,choice):
    #delattr(d,choice)
    func=getattr(d,choice)
    func()

socket网络编程

python2可以发字节,字符串
python3只能发字节

socket工作模式
import socket#调用模块
socket.tcp/ip#定义协议
connect(a.ip,a,port)#连接
socket.send(hello)#发送信息
socket.recv()
socket.close

服务端

import socket
server=socket.socket()
server.bind(('localhost',9999))#绑定要监听的端口
server.listen()#开始监听
print("我要开始等电话了")
#conn代表客户端连接服务器所创建的一个实例
conn,addr=server.accept()#等电话打进啦
print("我打电话了")
data=conn.recv(1024)
print(data)
conn.send(data.upper())#回复请求变成大写
server.close()

客户端

import socket
client=socket.socket()#声明协议类型同时生成socket对象链接
client.connect(('localhost',9999))
client.send("".encode("utf-8"))#发送请求
data=client.recv(1024)#接收返回信息
print(data.decode())
client.close()

客户端

原文地址:https://www.cnblogs.com/AbeoHu/p/5855419.html