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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue的双向绑定原理及实现_vue双向绑定指令

    vue的双向绑定原理及实现_vue双向绑定指令vue双向绑定原理及实现一、MVC模式二、MVVM模式三、双向绑定原理1、实现一个Observer2、实现一个Watcher3、实现一个Compile4、实现一个MVVM四、最后写一个html测试一下我们的功能一、MVC模式MVC模式以往的MVC模式是单向绑定,即Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新二、MVVM模式MVVM模式就是Model–View–ViewModel模式。它实现了View的变动,自动反映在ViewModel,反之亦然

    2022年10月10日
    0
  • unity3d用python语言_Unity开发使用什么语言?要掌握什么?

    Unity开发使用什么语言?要掌握什么呢?不管是开发的哪个行业都是要先从语言开始学习起的,要学会unity的话肯定是要先知道它的开发语言是哪些的,所以今天这篇文章粤嵌科技的小编就会以着两个方面为重点来和大家讲解下。Unity用什么语言开发比较好1、对于Unity相信很多人多不陌生,用一句话来描述就是:Unity是游戏引擎、游戏开发工具。支持的维度3D,2D,可以进行3D,2D游戏开发。对编程有所认…

    2022年4月14日
    137
  • 《中国人工智能学会通讯》——9.29 点击模型开源工具及数据集

    《中国人工智能学会通讯》——9.29 点击模型开源工具及数据集

    2022年3月6日
    44
  • jquery手机号码正则验证

    jquery手机号码正则验证&lt;!DOCTYPEhtml&gt;&lt;htmllang="en"&gt;&lt;head&gt;&lt;metacharset="UTF-8"&gt;&lt;title&gt;Title&lt;/title&gt;&lt;scripttype="text/javascript"src=&qu

    2022年4月30日
    38
  • dos攻击防范 php,DOS攻击和DDOS攻击的区别「建议收藏」

    dos攻击防范 php,DOS攻击和DDOS攻击的区别「建议收藏」DOS攻击和DDOS攻击的区别DDOS和DOS攻击都会使计算机或网络无法提供正常的服务;而DDOS和DOS的区别在于,DDOS是一种分布式拒绝服务,会将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。如何防DOS攻击和DDOS攻击1、带宽资源要充足带宽直接决定了抗DDOS攻击的能力,至少要选择100M带宽的,越多越好。2、服务器的硬件配置在带宽以…

    2022年9月30日
    0
  • NAT MASQUERADE

    NAT MASQUERADESNAT是sourcenetworkaddresstranslation的缩写即源地址目标转换比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP。PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip。当外部网络的服务器比如网站web服务器接到访问请求的时候,他的日志记录下来的是路由器的ip地址,而不是pc机的内网ip。这是因为,这个服务器收到的数…

    2022年6月29日
    31

发表回复

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

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