自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 configparser配置解析模块

类字典操作,不区分大小写DEFAULT默认块在遍历其他块时也会被遍历创建配置文件#!/usr/bin/env pythonimport configparserconfig = configparser.ConfigParser() #config={}config['DEFAULT']={ #创建默认块 'Serveraliveinterval':45, ...

2018-12-16 17:34:13 310

原创 socketserve模块

服务端:#!/usr/bin/env pythonfrom socket import *import subprocessimport jsonimport structimport socketserverip_port = ('127.0.0.1',8080)buffer_size = 1024filename = 'malin'class Myserver(sock...

2018-12-12 22:26:21 258

原创 粘包

粘包就是recv(buffer_size)时每次只收取1024字节,如果信息过大,就会积累到下次收取产生粘包只有基于TCP的套接字有粘包现象基于UDP的套接字没有粘包现象所谓粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据造成的.TCP(传输控制协议),是可靠传输是面向连接的,面向流的,提供高可靠性服务.收发段都要有一对一承兑的socket,因此,发送端为了...

2018-12-11 23:52:23 1502

原创 subprocess模块

Popen命令import subprocessres = subprocess.Popen('dir',shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)shell是命令解释器stdout是标准输出stdin是标准输入stderr是标准错误'dir’的执行结果交给了管道P...

2018-12-11 17:54:12 169

原创 套接字的应用

基于UDP实现ntp时间服务器:服务端from socket import *import timeip_port = ('127.0.0.2',8080)buffer_size = 1204udp_server = socket(AF_INET,SOCK_DGRAM)udp_server.bind(ip_port)while True: data, addr = ud...

2018-12-11 17:31:07 189

原创 linux常用操作

常用命令:用户操作exit退出用户Ctrl+Alt+F1~F6切换终端whoami当前用户是谁who有哪些用户useradd 建立用户useradd-g指定组名useradd-u指定UIDuseradd-d指定家目录useradd-c指定备注信息useradd-s指定用户所用的shelluserdel -r 删除指定用户usermod -G group2 user 覆盖...

2018-12-10 20:07:31 140

原创 socket套接字原理

我们知道进程通信的方法有管道、命名管道、信号、消息队列、共享内存、信号量,这些方法都要求通信的两个进程位于同一个主机。但是如果通信双方不在同一个主机又该如何进行通信呢?在计算机网络中我们就学过了tcp/ip协议族,其实使用tcp/ip协议族就能达到我们想要的效果,如下图:当然,这样做固然是可以的,但是,当我们使用不同的协议进行通信时就得使用不同的接口,还得处理不同协议的各种细节,这就增加了开发...

2018-12-10 15:02:24 609

原创 TCP/IP协议族

根据作用范围分类:广域网WAN局域网LAN城域网MAN根据使用者分类:公用网专用网计算机网络的性能指标速率:即数据率或比特率,是网络中最重要的一个性能指标,单位是b/s,或kb/s,Mb/s,Gb/s等带宽:本来是指信号具有的频带宽度,单位是赫(千赫/兆赫/等),现在是数字信道所能传送的’最高数据率’的同义语.吞吐量:表示在单位时间内通过的某个网络(或信道/接口)的数据量.吞吐...

2018-12-10 13:53:44 200

原创 错误和异常

错误分两种:语法错误逻辑错误异常:是程序运行时发生错误的信号包括:异常追踪信息,异常类型,异常值常见异常类型:AttributeError试图访问一个对象没有的属性IOError 输入/输出异常,基本上是无法打开文件ImportError 无法引入模块或包,基本上是路径问题或名称错误IndentationError语法错误,代码没有正确对齐SyntaxError Python语...

2018-12-10 00:09:52 145

原创 元类

元类就是类的类类可以用class创建,也可以用type创建:class Foo: passdef __init__(self,name): self.name = nameFFO = type('Foo',(object,),{'k':1,'__init__':__init__})print(FFO.__dict__)输出:{‘k’: 1, ‘init’: &...

2018-12-09 20:17:02 103

原创 property静态属性

property静态属性的使用,可以配合setter,deleter对属性进行操作,getter没定义时默认property代替getter,如果定义了就运行getterclass Foo: def __init__(self): self.original_price = 100 self.discount = 0.5 @property ...

2018-12-09 20:00:41 203

原创 描述符制作装饰器

用描述符自制@propertyclass Lazyproperty: def __init__(self,func): self.func = func #接收Lazyproperty(area)传入的函数area的地址 def __get__(self, instance, owner): return self.fun...

2018-12-09 11:33:20 162

原创 类的装饰器

一切皆对象语法糖@可以用在函数上,也可以用在类上函数也是一种类,也有属性字典,也可以给属性赋值等操作def deco(obj): obj.x = 1 obj.y = 2 return obj@deco #相当于Foo = deco(Foo)class Foo: passprint(Foo.__dict__)@deco #相当于test =...

2018-12-08 22:59:02 141

原创 上下文管理协议

1.使用with语句结束后,会自动完成清理2.在需要管理一些资源,比如文件,网络连接,锁的编程环境中,可以在__ exit __ 中定制自动释放资源的机制.class Foo: def __init__(self,name,type = 'r',encoding = 'utf-8'): self.name = name self.type = type...

2018-12-08 20:43:21 203 1

原创 描述符

描述符优先级:类属性>数据描述符>实例属性>非数据描述符>__ getattr __同时具有__ get __ 属性和__ set __ 属性的新式类是数据描述符,只具有__ get __ 属性的新式类是非数据描述符实例化过程是设置实例属性的过程,数据描述符优先触发,即__ set __ 触发__ delete __ 是描述符的属性,而__ del __ 是析构方...

2018-12-08 16:22:08 147

原创 迭代器

class Foo: def __init__(self,x): self.x = x def __iter__(self): return self def __next__(self): self.x += 1 return self.xf1 = Foo(100)print(f1.x)print(n...

2018-12-07 23:20:15 111

原创 软件开发规范

bin目录放脚本的可执行文件,初始化启动脚本conf目录存放配置文件db目录存放数据lib目录存放公共类库log目录存放日志src目录存放主逻辑,或者叫core

2018-12-07 18:42:35 158

原创 __ call __

实例加()本质是调用类的__ call __ 方法,编程可执行class Date: def __init__(self,year,mon,day): self.year = year self.mon = mon self.day = day def __call__(self): print('我执行啦')...

2018-12-07 14:13:36 154

原创 __ del __

析构函数__ del __ ,使用del删除实例时才触发,否则等到文件执行完毕进行回收时才触发class Date: def __init__(self,year,mon,day): self.year = year self.mon = mon self.day = day def __del__(self): ...

2018-12-07 14:07:18 740

原创 __ slots __

优点:更快的属性访问速度减少内存消耗1. 只有非字符串的迭代器可以赋值给__slots__class A(object): __slots__ = ('a', 'b', 'c')class B(object): __slots__ = 'abcd'若直接将字符串赋值给它,就只有一个属性。...

2018-12-07 13:45:47 265

原创 __ format __

formatclass Date:def init(self,year,mon,day):self.year = yearself.mon = monself.day = dayd1 = Date(2016,12,3)x = ‘{0.year}’.format(d1)print(x)

2018-12-06 14:58:51 216

原创 str和repr

__ str __ 使用print时触发str(f1)---->触发f1.__ str __()class Foo: def __init__(self,name,age): self.name = name self.age = age def __str__(self): return '名字是%s 年龄是%s'% (se...

2018-12-06 11:28:31 128

原创 item系列内置函数

点的方式操作属性与attr相关:中括号的方式操作属性与item系列相关__ setitem ____ getitem ____ delitem __

2018-12-06 11:05:54 862

原创 获取当前文件模块

获取当前文件模块import sysobj1 = sys.modules[name]x = 1print(hasattr(obj1,‘x’))

2018-12-06 10:23:25 116

原创 包装,授权

授权:是包装的一个特性包装一个类型通常是对已存在的类型的一些定制,这种做法可以新建,修改或删除原有产品的功能.其他的则保持原样.授权的过程,即是所有更新的功能都是由新类的某部分来处理,但已存在的功能就授权给对象的默认属性.import timeclass Open: def __init__(self,filename,mode='r',encoding='utf-8'): ...

2018-12-05 23:49:02 225

原创 类的内置attr属性

__ getattr __ 当使用getattr(f1,‘y’)调用的属性是类属性时会调用此函数.__ delattr __ 当使用del f1.y删除属性时,不管属性是否存在,都会调用此函数__ setattr __ 当使用setattr(f1,‘z’,111)设置新属性时,会调用此函数class Foo: x = 1 def __init__(self,y): ...

2018-12-05 19:53:55 470

原创 动态导入模块

__ import __(‘m1.t’)从字符串中提取模块名,导入的模块是最顶级的部分即m1module_t = __import__('m1.t')module_t.t.test1()或者import importlibm = importlib.import_module('m1.t')...

2018-12-05 19:17:16 160

原创 反射

hasattr(b1,‘name’)检测b1是否能调用name属性getattr(b1,‘name’, ‘无’)获得b1能调用的属性的地址,相当于b1.name,没找到时显示默认参数内容,setattr(b1,‘key’,‘value’)设置b1的属性delattr(b1,‘name’)删掉name属性,相当于del b1.name可插拔设计:if hasattr(f1,'put'): ...

2018-12-05 18:21:34 107

原创 继承,多态,封装

继承有两层含义:1,改变,2,扩展多少就是类的两层含义的一个具体实现机制即调用不同的类实例化,对象下的相同的方法,实现的过程不一样Python中的标注类型就是多态概念的一个很好的示范类里面以一个下划线_开头的属性,约定只用于内部,以两个下划线 __ 开头的属性,class会自动给属性重命名为 _ 类名 __ 属性...

2018-12-05 16:12:01 127

原创 super调用父类的方法

在子类中,super().__ init __(name,age)或者super().run()等调用父类其他方法,都可以省略self参数也可以避免在砖石继承中调用两次基类的方法class baseClass: num_base_calls = 0 def call_me(self): print('calling method on Base Class'...

2018-12-05 13:31:47 1368

原创 继承顺序

Python 3 中都是新式继承,采用广度优先,可以用__ mro __方法查看顺序.Python 2 中,如果基类的父类是object,就是新式继承,如果基类无父类则是经典继承,经典继承采用深度优先....

2018-12-05 11:28:21 109

原创 接口继承与归一化设计

接口继承:定义一个基类,基类中把自己的方法用装饰器的方式定义成接口函数,当子类中继承基类时,子类必须实现基类定义的方法,否则无法实例化:import abc class All_file(metaclass=abc.ABCMeta): @abc.abstractmethod def read(self): pass @abc.abstr...

2018-12-05 10:58:35 135

原创 类class,内置属性,实例

class包含两类属性:1,数据属性2,函数属性dir()查看类的所有属性名列表__ dic __查看类的属性字典class Chinese:print(dir(Chinese))print(Chinese.__ dict __)

2018-12-03 20:32:54 506

原创 logging模块

debug()调试级别info()信息级别warning()警告级别error()错误级别critical()危险级别默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG...

2018-12-03 20:19:07 102

原创 re模块,正则表达式

通配符".":代表任意一个字符,换行符不算.“^”:字符串开头匹配“$”:字符串结尾匹配“*”:匹配0至无穷次(贪婪匹配)“+”:匹配1至无穷次(贪婪匹配)“?”:匹配0次至1次{0,} == *{1,} == +{0,1} == ?{6} 匹配6次(精准匹配){1,5} 匹配1-5次(贪婪匹配)前面的*,+,?等都是贪婪匹配,后面加?变成惰性匹配,按最小次数匹...

2018-12-02 16:21:11 220

原创 SYS模块补充

sys.argv命令行参数List,在文件外部即命令行输入参数,被文件接收,根据获得的参数执行.第一个元素是程序本身路径import sysprint(sys.argv)command = sys.argv[1]path = sys.argv[2]if command == 'post': print('post')elif command == 'get': ...

2018-12-02 11:42:40 115

原创 os模块重点补充

os.stat(‘malin.py’)获取文件/目录信息st_atime上次查看时间st_mtime上次修改时间st_ctime创建时间os.path.join(a,b)路径拼接os.path.getmtime获取文件最后的修改时间...

2018-12-01 17:35:17 114

原创 BASEDIR

bin.py文件在bin包里时,无法调用my_module的模块,可以用BASE_DIR方法:import sys,osBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(BASE_DIR)

2018-12-01 16:35:24 234

原创 __name__

__ name __ 是一个变量,默认值为__ main __当文件被调用是,值为被调用文件的路劲if __ name __ == ‘__ main __’:1,用于被调用文件的测试2,主程序不愿意被调用用于函数部分后边,执行部分前边,当文件自己执行时,__ name __值等于__ main __ ,可以正常执行.当文件被调用时,等式不成立,只加载函数部分,不加载调试用的执行部分....

2018-12-01 10:23:14 134

原创 模块和包

引入一个模块:import cal引入多个模块:import cal,time引入模块cal并简化引入的功能:from cal import add引入模块cal全部功能并简化功能,但是不推荐:from cal import * 调用多层包from web.web1.web2.web3 import cal或者from web.web1.web2.web3.ca...

2018-12-01 10:04:53 89

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除