Python3.5 学习七
心灵鸡汤
好书推荐:消费者行为学、围城、活着、盲井、三体、北京折叠
静态方法:
@staticmethod #名义上归类管,和类没什么关系,只是引用用"."
在静态方法中,无法访问类或实例的任何属性和方法
类方法:
@classmethod 只能访问类变量,不能访问实例变量
属性方法:
@property 把一个方法调用方式,变成一个静态属性,对用户隐藏其中的实现细节
@setter 属性方法的赋值
@deleter 属性方法的删除 深入讲解类的特殊成员方法:
__doc__ 说明文档
__module__ 模块相对引用路径
__class__ 类相对引用路径
__call__ 相当于对象后面跟()进行实例操作
__dict__ 查看类或者对象中的所有成员 类调用以及实例调用
__str__ 如果一个类中定义了__str__这个方法,那么在打印类的对象时,默认打印这个方法的返回值
__getitem__ 这三个方法可以构造一个字典类,封装自己想实现的方法,自定义一个类似字典的类
__setitem__
__delitem__ __new__
创建类的两种方式:普通方式、特殊方式
def func(self):
print("name is %s,age is %s"%(self.name,self.age))
def __init__(self,name,age):
self.name=name
self.age=age Foo=type('Foo',(),{'talk':func,
'__init__':__init__}) __metaclass__ 元类 表示该类是由哪个类派生出来的
class Foo(object):
__metaclass__=Mytype 则该类由Mytype类继承来的 obj=Foo()
实现过程为:先调用Foo的元类Mytype的__call__(其中先__new__再__init__)
然后再调用Foo类的__call__方法执行___new__和__init__方法,以实例化Foo实例对象
反射详解:
可以用以下四种方法对类的实例中的属性或者方法名进行判断和处理
hasattr(obj,str) 判断是否存在指定字符串的属性或方法名
getattr(obj,str) 取得指定字符串的属性的属性值或方法名的内存地址
setattr(obj,str,str_name) 对该对象设置一个新的方法或属性值
delattr(obj,str) 删除该字符串的方法或属性 异常处理:
try:
code
except except_name1 as e:
print("except_name1 is happened",e)
except (except_name1,except_name2) as e:
print("except_name1 or except_name2 is happened",e)
except Exception as e:
print("其他未匹配到的异常发生",e)
else:
print("一切正常")
finally:
print("无论发生不发生异常,都会执行这里") 注意,如果是因为缩进格式错误,引起的异常是不会被Python解释器识别出来的,只会报错 自定义异常:
class AlexException(Exception):
def __init__(self,message):
self.message=message
# def __str__(self):
# return self.message try:
# 想要主动触发异常,需要使用raise调用
raise AlexException("我自己触发的异常") except AlexException as e:
print(e) 开始网络编程部分: 七层网络架构层的理解:
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层 各种协议等:http、ftp、dns、dhcp、cimp ping(网络层)等,基本属于应用层 应用程序在网络间通讯,占用机器上的某一个端口,相当于总机+分机
Socket介绍: 电脑间数据传输,都是在TCP/IP协议 UDP协议规则下,基于IP地址、端口号的数据收、发。
TCP/IP:通讯要经历三次握手 (syn+recv)、四地断开
数据通信的伪代码图示:

洪水攻击:伪造IP地址头,实现瞬间大量链接占用 简单的收发实例的实现 参考代码目录20180807下
通过实例,学习了如何制作简单server-client1的交互
如何通过server向client传送一个较大的视频文件,可以用conn.sendall(data)一次传送,client中client.recv(10240000)多次接收来实现,一次能接收多少是要看系统缓存区大小的
Python3.5 学习七的更多相关文章
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- 从零开始学习PYTHON3讲义(七)条件分支和哥德巴赫猜想
<从零开始PYTHON3>第七讲 人生是由无数个选择组成,每个选择都有不同的限定条件.现在来说人生有点早是吧:)不过事实的确是这样的. 程序也充满着选择,满足不同的条件,则运行不同的运算. ...
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- MyBatis学习七:spring和MyBatis整合
<\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...
- python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...
随机推荐
- Spring MVC 学习 之 - URL参数传递
在学习 Spring Mvc 过程中,有必要来先了解几个关键参数: @Controller: 在类上注解,则此类将编程一个控制器,在项目启动 Spring 将自动扫描此类,并进行对应URL路由映 ...
- php遍历所有文件
<?php function getdir($dir){ static $str = ''; if(is_file($dir)){ $str.=$dir.'<br>'; }else{ ...
- AnyConnect removes "Connections" tab from IE Settings solution
I have an ASA 5510 that we use for SSL VPN Client access. The ASA distributes the AnyConnect (v2.4. ...
- mount /dev/sr0 /media/cdrom you must specify the filesystem type
发现“CD/DVD”的Device status中的“Connected”未打勾,将此项打勾后(不需要重启虚拟机),可以正常挂载光驱
- 深入理解Spring的容器内事件发布监听机制
目录 1. 什么是事件监听机制 2. JDK中对事件监听机制的支持 2.1 基于JDK实现对任务执行结果的监听 3.Spring容器对事件监听机制的支持 3.1 基于Spring实现对任务执行结果的监 ...
- 5-math中函数汇总
math.h 数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有:1 三角函数double sin (double);double cos (double);double tan ( ...
- jdeveloper12.1.3的安装与卸载
jdeveloper12.1.3的安装步骤:1>安装jdk7.0 2>在命令行中输入:cd C:\Program Files\Java\jdk1.7.0_60\bin 3>命令行安装 ...
- 安装scrapy解决的坑
在windows下: pip install scrapy 最后一步报错: 本来以为是缺少 Microsoft Visual C++ 14.0 这个库,一看下载需要400多M,算了再看下报错... 感 ...
- 排序:快速排序Quick Sort
原理,通过一趟扫描将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序 ...
- Linux 基础教程 34-软件包管理-RPM
对于Linux而言管理各类软件,如安装.卸载和升级等是常有的事情和必备的技能.以CentOS为例,常用的安装包命令有rpm和yum. RPM基础 RPM(RedHat Package ...