python UDP

注意一点,socket.socket()的括号里不能像tcp一样为空 server.py: import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定端口: s.bind(('127.0.0.1', 9999)) print('Bind UDP on 9999...') while True: # 接收数据: data, addr = s.recvfrom(1024) print('Received from %s:%s.' % addr) s.sendto(b'Hello, %s!' % data, addr) client.py: import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for data in [b'Michael', b'Tracy', b'Sarah']: # 发送数据: s.sendto(data, ('127.0.0.1', 9999)) # 接收数据: print(s.recv(1024).decode('utf-8')) s.close() output: Hello, Michael! Hello, Tracy! Hello, Sarah!...

March 16, 2022 · 1 min · 编程笔记本

制定类:更多的魔法方法

官方文档: https://docs.python.org/3/reference/datamodel.html#special-method-names 中文: https://docs.python.org/zh-cn/3/reference/datamodel.html#special-method-names __get__ class aa(): def __get__(self): return self.name class bb(): def __init__(self): self.ca=aa() b=bb() print(b.ca) output: <__main__.aa object at 0x7e3992d570>

March 16, 2022 · 1 min · 编程笔记本

把类当成方法使用

class people(): def __init__(self,name): self.name=name def __call__(self): print("my name is {0.name}".format(self)) me=people("john") me() output: my name is john

March 16, 2022 · 1 min · 编程笔记本

给类的实例绑定方法

from types import MethodType class people(): def __init__(self): print("cls") def eat(self,shit): print("I'm eating "+shit) def say(self,shit): print(shit) you=people() me=people() # 仅给单个实例绑定方法 you.eat=MethodType(eat,you) you.eat("shit") # 给所有实例绑定方法 people.say=MethodType(say,people) you.say("f**k.") me.say("f**k you!") output: cls cls I'm eating shit f**k. f**k you!

March 15, 2022 · 1 min · 编程笔记本

重✍️线程构造方法

继承于threading,重写构造方法: import threading class th(threading.Thread): def __init__(self): threading.Thread.__init__(self) print("__init__") def run(self): print("run") t=th() t.start() t.join() output: __init__ run

March 14, 2022 · 1 min · 编程笔记本