关于python脚本
我有这个密码关于python脚本,python,oop,Python,Oop,我有这个密码 class HNCS (ThreadingTCPServer): def verify_request(self, request, client_address): for key in connections: if connections[key].client_address[0] == client_address[0]: if client_address[0] != '127.0
class HNCS (ThreadingTCPServer):
def verify_request(self, request, client_address):
for key in connections:
if connections[key].client_address[0] == client_address[0]:
if client_address[0] != '127.0.0.1':
return False
return True
def welcome(self):
return '''______________________________________________________
------------------------------------------------------
%s
______________________________________________________
------------------------------------------------------
* Server started %s
* Waiting for connections on port %i
''' % (gpl, ctime(), PORT)
我只是想不出上面写着什么
如果连接[key]。客户端地址[0]==客户端地址[0]
为什么我们在dictionary之后使用client\u address作为属性?也许dictionary存储的值恰好是具有client\u address成员属性的对象
换句话说,
.client\u地址
与作为参数传入的client\u地址
不同。相反,它是类中恰好存储在连接[key]
中的字段的名称。可能字典正在存储恰好具有client\u address成员属性的对象的值
换句话说,
.client\u地址
与作为参数传入的client\u地址
不同。相反,它是类中恰好存储在connections[key]
中的字段的名称,因为connections
字典可能有一个具有client\u address
属性的对象
比如:
编辑
dict
是一种字典,其中可以使用键存储值。当您再次请求该键时,您将获得返回的值,就这么简单
在我前面的示例中,行:
connections = {"oscar":SomeClass(["127.0.0.1","192.60.0.1"])}
可以写成:
connection = []
connections["oscar"] = SomeClass(["1","2"])
s = connections["oscar"]
在注释
test[self.name]=self
中,使用name
作为键将self
表示的对象存储到test
字典中 因为连接
字典可能有一个带有客户端地址
属性的对象
for key in connections:
if connections[key].client_address[0] == client_address[0]:
比如:
编辑
dict
是一种字典,其中可以使用键存储值。当您再次请求该键时,您将获得返回的值,就这么简单
在我前面的示例中,行:
connections = {"oscar":SomeClass(["127.0.0.1","192.60.0.1"])}
可以写成:
connection = []
connections["oscar"] = SomeClass(["1","2"])
s = connections["oscar"]
在注释test[self.name]=self
中,使用name
作为键将self
表示的对象存储到test
字典中
for key in connections:
if connections[key].client_address[0] == client_address[0]:
这只是查看连接
字典中存储的所有值,以查看其名为客户端地址
的属性是否与本地变量客户端地址
具有相同的第一项(IP地址)。变量不必与字典中值的属性同名
它的意思是:如果来自同一IP地址的另一个连接已经被服务,则中止连接。(本地主机除外,它可以拥有任意多的连接。)
它可以重新拼写为:
def verify_request(self, request, new_client_addr):
ip= new_client_addr[0]
active_ips= [value.client_address[0] for value in connections.values()]
return ip not in active_ips or ip=='127.0.0.1'
这只是查看连接
字典中存储的所有值,以查看其名为客户端地址
的属性是否与本地变量客户端地址
具有相同的第一项(IP地址)。变量不必与字典中值的属性同名
它的意思是:如果来自同一IP地址的另一个连接已经被服务,则中止连接。(本地主机除外,它可以拥有任意多的连接。)
它可以重新拼写为:
def verify_request(self, request, new_client_addr):
ip= new_client_addr[0]
active_ips= [value.client_address[0] for value in connections.values()]
return ip not in active_ips or ip=='127.0.0.1'
不要打扰你自己,得到:D thnx dude另一个问题,当我在类测试内说[self.name]=self时会发生什么?这是否意味着对象本身及其属性以名称give???存储在列表中?对对象的引用是,是的。不要打扰你自己,得到:D thnx dude另一个问题,当我说在类测试内部[self.name]=self时会发生什么?这是否意味着对象本身及其属性存储在名为give???的列表中?对对象的引用是,是。另一个问题,当我说在类测试内部[self.name]时会发生什么=self这是否意味着对象本身及其属性存储在名为give???的列表中?另一个问题,当我在类测试中说[self.name]时会发生什么=self这是否意味着对象本身及其属性存储在名为give???@kmitnick:Python中没有函数重载。@kmitnick:Python中没有函数重载。