MySQL数据库操作
摘要:sql: # windows终端进入mysql # mysql -u用户名 -p密码 -h远程ip地址 mysql -uroot -proot # 退出 exit quit # sql语句最后都要有分号";"结尾 # 终端查看mysql版本 select version(); # 显示当前时间 se
阅读全文
魔术方法--?
摘要:方法: 1 # -*- coding:utf-8 -*- 2 # 1.__doc__ 表示类的描述信息 3 class Foo(object): 4 """ 描述类信息1234 """ 5 def func(self): 6 pass 7 print(Foo.__doc__) # 描述类信息1234
阅读全文
property属性
摘要:property属性:一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 设置方式: 类属性 即:在类中定义值为property对象的类属性 推荐 运行结果: 装饰器 即: 在类的实例方法上应用@property装饰器 Python中的类有经典类和新式类,新式类的属性比经典类的属性丰富。
阅读全文
电话
摘要:12389 督查电话 市长热线 12345 12388
阅读全文
私有化
摘要:xx: 公有变量 _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) __xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:_
阅读全文
深拷贝浅拷贝
摘要:1.应用copy库: 2.切片是浅拷贝: 3.字典的copy()方法是浅拷贝:
阅读全文
GIL--全局解释器锁
摘要:GIL:全局解释器锁,每个线程在执行的过程中都需要先获取GIL,保证同一时刻只有一个线程可以执行代码
阅读全文
TCP/IP协议标准
摘要:OSI(7层):应用层(Application),表示层(Presentation),会话层(Session),传输层(Transport),网络层(Network),数据链路层(Data Link),物理层(Physical) TCP/IP(4层):应用层,运输层,网际层(网络层),网络接口层(链
阅读全文
epoll版http服务器
摘要:epoll是事件通知方式接收数据,效率比轮询要高 代码:
阅读全文
单线程非阻塞长链接
摘要:轮询的方法接收数据,效率低,套接字越多,需要的时间越长 代码:
阅读全文
多任务5-协程(IO密集型适用)--gevent完成多任务及monkey补丁
摘要:代码: 结果: 这种比较麻烦,如果源代码里面用到time.sleep()或者socket中的堵塞,一个一个改会很麻烦,所以有了gevent的补丁 代码: 结果不变:
阅读全文
多任务4---greenlet完成多任务
摘要:同yield一样 ,单线程,来回切换完成多任务,需要安装greenlet插件 pip install greenlet 代码: 结果:
阅读全文
多任务3(协程)--yield完成多任务交替执行
摘要:协程是并发,单线程,一次执行一个 来回切换 代码: 结果:
阅读全文
生成器调试---send方式
摘要:调试 结果: send传的值不影响next()下次要取得值
阅读全文
生成器创建的两种方式
摘要:生成器能让看上去的一个函数暂停执行,通过next()或send()继续执行 1,如同列表生成方式,把[]换成() 结果: 2.函数 + yield
阅读全文
列表生成方式-列表推导式
摘要:1. nums = list() 2. nums = [x for x in range(10)] # [0,1,2,3,4,5,6,7,8,9] nums_2 = [x*2 for x in rang(10)] # [0,2,4,6,8,10,12,14,16,18]
阅读全文
迭代器应用场景1---斐波那契
摘要:1,for循环 除了for循环能接受可迭代对象,list、tuple等也能接收 2.class 3.我能理解的class迭代器方式
阅读全文
迭代器
摘要:迭代器能减少内存空间实现循环。 方法1: 两个类可以改善成一个,只要有__iter__方法和__next__方法:
阅读全文
多任务案例--文件夹copy.py
摘要:1 import os 2 import multiprocessing 3 4 5 def copy_file(q,file_name,new_folder_name,old_folder_name): 6 with open(old_folder_name + "/" + file_name,"rb") as f1, open(new_folder_name + "/" + file_name
阅读全文
进程间的通信----队列queue
摘要:1 import multiprocessing 2 3 4 def download_from_web(q): 5 """下载数据""" 6 # 模拟下载数据 7 data = [11,22,33,44] 8 9 # 向队列写入数据 10 for temp in data: 11 q.put(temp) 12 1...
阅读全文
多任务udp聊天器完整版
摘要:1 import socket 2 import threading 3 4 5 def send_msg(udp_socket,dest_ip,dest_port): 6 while True: 7 send_data = input("请输入要发送的内容:") 8 udp_socket.sendto(send_data.encode...
阅读全文
多任务死锁和银行家算法
摘要:结果: 此时进入到了死锁的状态,都在等对方先解开 避免死锁 程序设计时尽量避免(银行家算法) 添加超时时间 acquire(超时时间) 银行家算法 [背景知识] 一个银行家如何将一定数目的资金安全地借给若干个客户,使这些客户既能借到钱完成要干的事,同时银行家又能收回全部资金而不至于破产,这就是银行家
阅读全文
多线程互斥锁
摘要:因为多线程运行时要争夺资源,导致同事写入全局变量的时候回出现问题 所以用互斥锁可以解决这个问题 没有上锁的时候 结果: 如果按照预想的,结果应该是:2000000 出现原因--资源争夺 上锁后的情况 结果 test1抢先上锁,运行完毕后会解锁,然后test2接着上锁,得出结果:2000000
阅读全文
多任务创建-线程(IO密集型适用)
摘要:单核CPU:时间片轮转 并行:CPU的个数大于等于任务数 真的多任务执行 并发:CPU的个数小于任务数 假的多任务 知识点: 多线程共享全局变量 创建线程的两种方法: 1.创建子线程方法 调用函数 Thread(target=函数名) 2,创建子线程类
阅读全文
TCP客户端
摘要:1 import socket 2 3 4 def main(): 5 # 1.常见套接字对象 6 tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 7 8 # 连接服务器 9 server_ip = input("请输入服务器ip:") 10 ...
阅读全文
TCL服务器端
摘要:1 import socket 2 3 4 def main(): 5 # 创建套接字对象 6 tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 7 8 # 绑定端口 9 tcp_server_socket.bind(("192.168.199.88",...
阅读全文
网络
摘要:UDP,User Datagram Protocol):用户数据报协议,UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。RFC 768 [1] 描述了 UDP。 UDP相当于写信,每一封信都要有地址和端口,也不安全,会丢失信息 TCP,Transmission Cont
阅读全文
socket发送、接收信息----UDP
摘要:1 # 导入套接字包 2 import socket 3 4 5 def welcome(): 6 print("------欢迎进入UDP聊天器--------") 7 print("1.发送信息") 8 print("2.接收信息") 9 print("0.退出聊天器") 10 11 def send_msg(udp_socket): ...
阅读全文
私有IP
摘要:A类地址:10.0.0.0~10.255.255.255 B类地址:172.16.0.0~172.31.255.255 C类地址:192.168.0.0~192.168.255.255
阅读全文
pygame游戏图像绘制及精灵用法
摘要:1精灵文件 plane_sprites.py 2.绘制图像主页面
阅读全文
pygame无法自动补全解决方法
摘要:在pycharm中导入pygame 1. 如果出现 AttributeError: module 'pip' has no attribute 'main'问题 找到安装目录下 helpers/packaging_tool.py文件,找到如下代码: 修改为如下,保存即可。
阅读全文
包的导入和发布模块
摘要:创建包 自动生成__init__.py文件 在__init__.py文件中把要导入的文件放进去 send_message.py recive_message.py中 需要导入的文件中 包的导入.py 运行结果 发布模块 在包的外部创建setup.py文件 setup.py中输入: 然后在终端中进入到
阅读全文
继承的重写与扩展
摘要:1 class Animal: 2 def eat(self): 3 print("吃") 4 5 def drink(self): 6 print("喝") 7 8 def run(self): 9 print("跑") 10 11 def sleep(self): 12 p...
阅读全文
类、实例、静态属性与方法
摘要:1 class Game(object): 2 # 定义最高分 类属性 3 top_score = 0 4 5 # 初始化 6 def __init__(self,name): 7 self.name = name 8 9 10 # 游戏帮助 静态方法 11 @staticmethod 12 def ...
阅读全文
多态
摘要:1 class Dog(object): 2 def __init__(self,name): 3 self.name = name 4 5 def game(self): 6 print("%s 蹦蹦跳跳的玩耍" % self.name) 7 8 class XiaoTianDog(Dog): 9 def game(...
阅读全文
私有属性
摘要:1 class Women(): 2 def __init__(self,name): 3 # 名字 4 self.name = name 5 6 # 年龄 7 self.__age = 18 8 9 def __secret(self): 10 print("%s的年龄是:%d...
阅读全文
类实例化2--士兵开火
摘要:1 class Gun: 2 """武器""" 3 def __init__(self,model): 4 5 # 枪的类型 6 self.model = model 7 # 弹药 8 self.bullen_counts = 0 9 10 def add_bullen(self,cou...
阅读全文
类的实例1--家具
摘要:1 class HouseItem(): 2 """家具""" 3 def __init__(self,name,area): 4 self.name = name 5 self.area = area 6 7 def __str__(self): 8 return ("%s的占地面积:%.2f" % (s...
阅读全文
多继承以及MRO顺序
摘要:单个调用父类的方法: 结果: 父类会被多次调用,浪费大量的资源 MRO和super()用法: 运行结果: super总结:
阅读全文
单例
摘要:1 class MediaPlayer(object): 2 # 定义类属性记录单例对象引用 3 instance = None 4 5 # 定义对象初始化记录标记 6 init_flag = False 7 8 def __new__(cls, *args, **kwargs): 9 10 # 判断单例对象是否引用...
阅读全文
关于PYCHARM中导入自己写的模块没有智能提示的解决办法
摘要:在pycharm界面中右击py文件所在的文件夹,选择Make Directory as文件,选择其中一个即可
阅读全文