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


相关推荐

  • Linux文件编辑命令详细整理

    Linux文件编辑命令详细整理

    2020年11月12日
    222
  • Deep Java Library_java atomicinteger

    Deep Java Library_java atomicintegerjava有NativeMemoryTracking帮助我们查看jvm带来的内存分配问题,这个只能看jvm带来的,如果是jni的调用申请的内存,那这个工具是没有用的。那大家可能疑惑了,那这个工具也没想象的那么有用,java各种分区,堆的,非堆的,还有直接内存的值jmx都有,想排查是否是jvm带来的似乎也可以做到。那NativeMemoryTracking的作用是什么呢?对比现有的工具查看内存数据的工…

    2025年8月13日
    2
  • arduino 超声波测距误差较大_超声波测距的背景

    arduino 超声波测距误差较大_超声波测距的背景arduino实现超声波测距涉及模块:四线超声波测距模块,LCD1602ALCD1602连接实验代码:#include<LiquidCrystal.h>LiquidCrystallcd(12,11,5,4,3,2);constintTrigPin=7;constintEchoPin=6;floatcm;voidsetup(){lcd.begin(16,2);pinMode(TrigPin,OUTPUT);pinMode

    2022年9月15日
    0
  • openssl-heartbleed漏洞学习

    openssl-heartbleed漏洞学习了解漏洞Heartbleed漏洞:Heartbleed漏洞是openssl的一个漏洞,这个严重漏洞(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。背景和影响:…

    2022年7月25日
    9
  • 手机钓鱼网站生成器_2021QQ空间钓鱼源码

    手机钓鱼网站生成器_2021QQ空间钓鱼源码欢迎访问我的网站http://ff999.cn里面有最新各种钓鱼程序源码提供下载QQ钓鱼YY钓鱼程序源码

    2022年8月24日
    8

发表回复

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

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