Python--socketserve源码分析(一)
2024-08-27 16:02:59
class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass
实现原理:
s =socketserver.ThreadingTCPServer(参数1,参数2,......)
根据ThreadingTCPServer的基类顺序,依次匹配各基类的构造函数参数
若第一个没构造函数则向后匹配
若有构造函数但参数不匹配则报错
若有构造函数且参数匹配则调用基类构造函数,并停止匹配过程
情况1:
#coding:UTF-8 class Base:def fun(self):
print ("Base fun") class B:
def __init__(self, a, b):
print (a,b) class A(Base, B):
pass if __name__ == "__main__":
a = A(1,2)
>>>> 1,2
情况2:
#coding:UTF-8 class Base:
def __init__(self):
self.ip = "192.168.3.8"
self.port = 1122
self.fun() def fun(self):
print ("Base fun") class B:
def __init__(self, a, b):
print (a,b) class A(Base, B):
pass if __name__ == "__main__":
a = A(1,2)
>>>> Traceback (most recent call last):
>>>> File "test.py", line 20, in <module>
>>>> a = A(1,2)
>>>> TypeError: __init__() takes 1 positional argument but 3 were given
情况3:
#coding:UTF-8 class Base:
def __init__(self, a, b):
self.ip = "192.168.3.8"
self.port = 1122
self.fun() def fun(self):
print ("Base fun") class B:
def __init__(self, a, b):
print (a,b) class A(Base, B):
pass if __name__ == "__main__":
a = A(1,2)
>>>> Base fun
最新文章
- W5500 keep-alive的用途与用法--新华龙电子
- AS技巧合集「调试技巧篇」
- 国内物联网平台初探(八):移动云OneNET
- Qt Quick 与 QML语言(初学笔记1)
- asp.net 真正实现完全跨域单点登录
- JDBC官方用法
- Google Play和基于Feature的过滤
- sql like 时间需要做转换
- win10安装elementary os双系统
- CentOS7离线安装mysql5.7
- 06 使用Tensorflow拟合x与y之间的关系
- 尚硅谷springboot学习33-整合mybatis
- Django框架(六) Django之模板继承
- MongoDb进阶实践之九 Mongodb的备份与还原
- 将jar包添加到maven仓库
- Android中获取系统上安装的APP信息
- (转)我是如何在SQLServer中处理每天四亿三千万记录的
- MapReduce 并行编程理论基础
- IOS中UITableView异步加载图片的实现
- Python序列——元组
热门文章
- Linux笔记---硬盘添加
- Redis 部署主从哨兵 C#使用,实现自动获取redis缓存 实例2
- ssh框架遇到的问题总结
- centos6.8 docker0: iptables: No chain/target/match by that name
- 微信小程序之swiper轮播图中的图片自适应高度
- 如何上传webshell后改回原来的webshell的格式
- Codeforces 626E Simple Skewness(暴力枚举+二分)
- UVA - 10339-Watching Watches
- hdu_1027(好吧。。。牛。。。next_permutation也可以水过)
- 51 Nod 1119