最赞回答 / 风再起时2019
s, addr = server.accept()server.accept() 返回的是一个元组Tuple,具体如下 (<socket.socket fd=332, family=2, type=1, proto=0, laddr=('127.0.0.1', 8099), raddr=('127.0.0.1', 5726)>, ('127.0.0.1', 5726))s,addr 分别介绍元组的第一个和第二个元素:s = <socket.socket fd=332, family=2,...
2023-01-10
最赞回答 / 土斤土斤
r1 = Rational(1, 2) 这里是调用了Rational类的__init__方法创建了一个实例,然后将这个实例赋予给了r1;<...code...>这是调用了r1这个实例的__add__方法,self是指实例本身也就是r1,而r这个参数就是指代r2,下文两个语句是等价的<...code...>从这地方引申出来,假设还有一个r3,那程序是怎么跑的呢<...code...>程序会先算r1+r2,然后再用这个算出的结果x去+r3
2022-12-28
最新回答 / 土斤土斤
查了大量资料,大概是这样。python3的多继承采用的是c3算法,将复杂结构上的所有类都映射到一个线性顺序上,而这个顺序能够保证所有的类都被构造一次,这个也就是方法搜索的顺序mro针对题目中的代码,mro顺序为D→B→C→A,这也就是方法的搜索顺序,而每一次执行方法的时候,比如执行D类的方法,碰到super()后就会跳过接下来的语句而直接往右边的顺序的类中去继续搜索方法,所以D类的print语句就会被先跳过,变成搜索B类的方法,而B类的方法中也有super(),所以也是继续跳过,直到A类中没有可以跳过的语...
2022-10-09
最赞回答 / 土斤土斤
这是一种代码简写的方式,称之为推导式,是通过一行代码完成循环判断,并遍历出一系列数据的编写代码方式。语法为:成员 for 循环 ... if 判断 ...而例子中的是为推导式中的一种类型,为列表推导式,结果是一个列表: [item for item in Iterable]所以 result = [item for item in map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])] 是这一段的简写:result = []for i in map(lamb...
2022-07-31