Python 中级进阶学习笔记

面对对象部分:
class Student(object) #Student继承object类
def __init__(self, name, score): #类似前置函数、构造函数
self.name = name? #设置属性
self.score = score
#self.__plus = plus #private局部变量的写法,__变量名
#感觉python的多态和派生都和c++差不多,具体在django用一下才晓得
python的类可以多重继承,也可以派生(object1,object2,…)java不能派生,c++可以派生
python还有抽象类,即 类库的模版,以后要写接口的时候,可以再配个实例

调试部分:
try:
#执行语句
except:
#异常时执行
logging.basicConfig(filename=’error.log’)
logging.exception(“Exception Logged”) #logging.exception(e) 为记录错误
finally:
#按照程序流程,执行完上面的后再执行这里的语句
#调试方法+经验 print() exit() type() 下断点,拿出数据检查

文件部分:
文件读写防止IO产生错误的写法#无需关闭文件
with open(‘/file’, ‘a’) as fp:
print(fp.read())
#fp.close()
fp.readline() #每次读取文件的一行
fp.readlines() #返回一个列表,每一个元素为一行
for line in fp.readlines():
print(line.strip()) # 把末尾的’\n’删掉
fp.write() #写操作
memory_fp = StringIO() #在内存中写文件
memory_fp.getvalue() #获取内存的文件数据
BytesIO() #在内存中写二进制文件

系统部分:
os.uname() #查看当前操作系统
os.environ #查看当前操作系统环境变量
os.mkdir() #创建目录
os.rmdir() #删除目录
os.path.join() #合并路径,处理不同操作系统兼容性
os.path.split()#拆分路径
os.path.abspath(‘.’)#查看当前绝对路径
os.path.splitext() #获取文件的扩展名
os.rename(‘test.txt’, ‘test.py’) #重命名文件名
os.remove(‘test.py’) #删掉文件

pickle.dumps() #把任意对象序列化写入内存
pickle.dump() #序列化后写入指定文件
pickle.loads() #内存中读取反序列化对象
pickle.load()? #文件中读取反序列化对象
json.dumps() #打印json对象
json.dump() #把json对象写入文件

进程部分:
os.getpid()#获取父进程id,类似c++的句柄
pid = os.fork() #子进程,只能用于linux内核,win内核是消息循环机制
from multiprocessing import Process #跨平台的多进程库Process()/start()/join()
Queue #进程通讯库
threading #线程库,要给线程睡眠时间
current_thread()#当前线程
MainThread #主线程 实例名
lock = threading.Lock() #线程锁 lock.acquire() 获取锁、lock.release() 释放锁 #容易造成死锁
threading.local() #全局线程对象

网络部分:
#长连接
#导入socket库:
import socket
#创建一个socket:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#建立连接:
s.connect(‘127.0.0.1′, 80)
#发送数据:
s.send(b’GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n’)
#接受数据
d = s.recv(1024) #接受字节数
#关闭连接:
s.close()
#监听端口:
s.bind((‘127.0.0.1’, 9999))
#连接最大数
s.listen(5)
#接受一个连接
s.accept()
#UDP短连接

数据库部分:
sqlite3 #sqlite库
mysql.connector #mysql驱动库
还是觉得mysql合适,做客户端的时候再考虑用sqlite了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.