1.定义继承类的super解释
在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性
class Teacher(Person):
def __init__(self,name,gender,subject):
super(Teacher,self).__init__(name,gender)
self.subject = subject
2.Teacher类继Person类
class Person(object):
def __init__(self,name,gender):
self.name = name
self.gender = gender
class Teacher(Person):
def __init__(self,name,gender,subject):
super(Teacher,self).__init__(name,gender)
self.subject = subject
teacher = Teacher('zhang','girl','math')
print(teacher.name)
print(teacher.gender)
print(teacher.subject)
3.通过isinstance()方法,可以判断一个对象是否是某个类型
4.斐波那契数列是由 0, 1, 1, 2, 3, 5, 8...构成。
请编写一个Fib类,Fib(10)表示数列的前10个元素,print Fib(10) 可以打印出数列的前 10 个元素,len(Fib(10))可以正确返回数列的个数10。
class Fib(object):
def __init__(self,num):
self.res = []
self.num = num
a = 0
b = 1
for x in range(num):
self.res.append(a)
a,b = b,a+b
def __str__(self):
return str(self.res)
def __len__(self):
return self.num
f = Fib(10)
print(f)
print(len(f))
5.请改造server.py和client.py文件,实现一个echo服务器,使得client.py可以循环接收用户输入并发送给服务端,服务端在收到消息后,也把消息原样返回给client。
server.py
import socket
server = socket.socket() # 1. 新建socket
server.bind(('127.0.0.1', 8999)) # 2. 绑定IP和端口(其中127.0.0.1为本机回环IP)
server.listen(5) # 3. 监听连接
s, addr = server.accept() # 4. 接受连接
print('connect addr:{}'.format(addr))
while True:
content =s.recv(1024)
if len(content) == 0:
break
s.send(content)
print(str(content, encoding='utf-8')) # 接受来自客户端的消息,并打印出来
s.close()
client.py
import socket
client = socket.socket() # 1. 新建socket
client.connect(('127.0.0.1', 8999)) # 2. 连接服务端(注意,IP和端口要和服务端一致)
while True:
content = input('>>> ')
client.send(bytes(content, 'utf-8')) # 发送内容,注意发送的是字节字符串。
content = client.recv(1024)
print(str(content, encoding='utf-8'))
client.close()