Python–socketserve源码分析(一)

classThreadingTCPServer(ThreadingMixIn,TCPServer):pass实现原理:s=socketserver.ThreadingTCPServer(参

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

Python--socketserve源码分析(一) 

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

  

 

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120223.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 创建servlet的4个步骤_映射不能一对多还是多对一

    创建servlet的4个步骤_映射不能一对多还是多对一Servlet接口的实现类,路径配置映射,ServletConfig对象,ServletContext对象及web工程中文件的读取…

    2022年4月20日
    56
  • Sub-process /usr/bin/dpkg returned an error code_sub-process /usr/bin/dpkg

    Sub-process /usr/bin/dpkg returned an error code_sub-process /usr/bin/dpkgE:Sub-process/usr/bin/dpkgreturnedanerrorcode(1)解决办法安装libapache2-svn出现了这个错误,是由于apt-get安装软件时出现了类似于:dpkg:errorprocessingpackagelibapache2-mod-svn(–configure):subprocessinstalledpost-i…

    2022年10月7日
    2
  • 如果要学习web前端开发,需要学习什么?

    如果要学习web前端开发,需要学习什么?遇到很多新手,都会问,如果要学习web前端开发,需要学习什么?难不难?多久能入门?怎么能快速建一个网站?工资能拿到多少?还有些让我推荐一些培训机构什么的要去学习。我建议是自学,实在是觉得自己没有这个能

    2022年8月6日
    6
  • java多线程-学习总结(完整版)

    java多线程-学习总结(完整版)这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Mar

    2022年7月7日
    19
  • 双飞翼布局和圣杯布局

    双飞翼布局和圣杯布局实现左右固定宽度,中间自适应的布局(中间先加载渲染),代码如下<!DOCTYPEhtml><html> <head> <metacharset=”utf-8″/> <title>css</title> </head> <styletype=”text/css”> *…

    2022年6月16日
    36
  • Git rebase使用详解

    Git rebase使用详解

    2022年2月18日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号