python纠错本---高级编程(持续更新)

一、python socket操作叙述

  • sk.recv(bufsize[,flag]):接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量。flag提供有关消息的其他信息,通常可以忽略
  • sk.recvfrom(bufsize[.flag]):与recv()类似,但返回值是(data,address)。其中data是包含接收数据的字符串,address是发送数据的套接字地址
  • sk.getsockname():返回套接字自己的地址。通常是一个元组(ipaddr,port)
  • sk.connect(address):连接到address处的套接字。一般,address的格式为元组(hostname,port),如果连接出错,返回socket.error错误
  • sk.listen(backlog):开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。

二、__ new__和__init__、call

  • __ new__是在实例创建之前被调用的,它的任务是创建实例然后返回该实例对象,是一个静态方法
  • __ init__是当实例创建完成之后被调用的,负责对象的初始化,系统执行该方法前,对象已经存在了,然后设置对象属性的一些初始值,是一个实例方法

即,__new__在__init__之前被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数。

  • __ init__ 方法为初始化方法,__new__方法才是真正的构造函数
  • __new__方法创建实例对象供__init__方法、实例方法使用,__init__方法定制实例对象
  • init 方法为初始化方法,为类的实例提供一些属性或者完成一些动作,初始化不返回任何东西
  • __new__是一个静态方法,而__init__是一个实例方法

call : 对象可call,注意不是类,是对象。

关于 call 方法,不得不先提到一个概念,就是可调用对象(callable),我们平时自定义的函数、内置函数和类都属于可调用对象,但凡是可以把一对括号()应用到某个对象身上都可称之为可调用对象,判断对象是否为可调用对象可以用函数 callable。

如果在类中实现了 call 方法,那么实例对象也将成为一个可调用对象

a = A()
a() # __call__

a是实例对象,同时还是可调用对象,那么我就可以像函数一样调用它,在调用它的过程中,__call__将被执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值