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. ...
随机推荐
- VB中的正则表达式
RegExp对象提供简单的正则表达式支持功能. RegExp对象的用法:Function RegExpTest(patrn, strng)Dim regEx, Match, Matches ' 建立变 ...
- 解决no-session延迟加载问题
解决no-session延迟加载问题 说明:dao层使用Hibernate从数据库查询数据信息返回给web层,在web层打印信息报no-Session错误, 产生原因 关联对象默认都是采用延迟加载 事 ...
- lda spark 代码官方文档
http://spark.apache.org/docs/1.6.1/mllib-clustering.html#latent-dirichlet-allocation-lda http://spar ...
- SpinBlur - 旋转模糊
[SpinBlur - 旋转模糊] Using the Spin Blur effect, you can rotate and blur the image around one or more p ...
- istview android:cacheColorHint,android:listSelector属性作用(转)
原文ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉, 原因是,滚动时,列表里面的view重绘时,用 ...
- Servlet和JSP的本质和区别
基本概念 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTT ...
- freemaker在表格中遍历数据
Controller层如下所示: @RequestMapping(value = "/test", method = RequestMethod.GET) public Strin ...
- 解题报告-1012. Numbers With Repeated Digits
Given a positive integer N, return the number of positive integers less than or equal to N that have ...
- Windows 环境下分布式跨域Session共享(转)
出处:http://www.cnblogs.com/stangray/p/3328092.html 为什么还是那句话,在网上找了N篇Session共享,但真正可以直接解决问题的还是没有找到. 一.以下 ...
- 如何在Github上删除项目及某个文件
在Github上删除项目 在GitHub仓库中找到已经建立好的某个仓库,本篇文章以我的myBookCodes仓库为例,在建立的myBookCodes仓库中首先找到settings选项,如图所示: 将页 ...