
Python高级核心技术
加油
Y4tacker
关于我:Web安全、Java安全研究弟中弟
学校:四川大学(2019级)
写给自己:宁静致远,淡泊明志
展开
-
Python-Socket编程(读书笔记)
前言:打好基础,加油!!!,给大家安利,《Python核心编程》这本书真的不错,小白不要看,适合有一定基础后再看!!!强推!!!我这个是个简单的读书笔记,目的只是为了让自己养成一种记录的习惯,毕竟咋也只是刚刚开始,没那么多自己能写的东西,希望通过这种方式督促自己的学习;文章目录socket基本用法关于listen(n)内置方法一个简单的例子SocketServer 模块SocketServer 模块类创建 SocketServer TCP 服务端创建 SocketServer TCP 客户端Twisted原创 2020-06-26 22:42:49 · 10748 阅读 · 0 评论 -
Python-socket编程笔记
文章目录HTTP\socket\TCPSocket编程的模式client和server实现通信socket实现聊天和多用户连接socket模拟http请求HTTP\socket\TCP请参考网络模型,计算机给我们提供了socket,通过socket可以直接与传输层打交道Socket编程的模式client和server实现通信首先是服务端import socket# 指明为ipv4与tcp协议server = socket.socket(socket.AF_INET, socket.SO原创 2020-06-26 18:40:57 · 10664 阅读 · 0 评论 -
Python-正则表达式(读书笔记)
前言:《Python核心编程》读书笔记,我可太爱这本书了文章目录什么是正则表达式元字符特殊字符使用圆括号指定分组(重点)扩展表示法看起来暂时不太清楚的语句截图方便复习Python的re使用 match()方法匹配字符串使用 search()在一个字符串中查找模式(搜索与匹配的对比)group()与groups()匹配字符串的起始和结尾以及单词边界什么是正则表达式我看来最大的作用就是,爬虫或者过滤非法字符正则表达式为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础。简单地说,正则表原创 2020-06-26 00:52:54 · 15960 阅读 · 13 评论 -
Python-__new__与__init__代码笔记(自用)
首先,没有return时class User: def __new__(cls, *args, **kwargs): print ("I am in new ") return super().__new__(cls) def __init__(self, name): print ("I am in init") passa = int()#new 是用来控制对象的生成过程, 在对象生成之前#init是用来完善对象的原创 2020-06-25 10:17:12 · 10476 阅读 · 0 评论 -
Python-__getattr__与__getattribute__
文章目录\_\_getattr_\_()解释说明\_\_getattribute\_解释说明使用案例__getattr__()解释说明定义了__getattr__(),当访问object不存在的属性时会调用该方法不定义访问不存在的属性时会报 AttributeErrorclass User: def __init__(self,info={}): self.info = infoif __name__ == "__main__": user = User(info原创 2020-06-25 09:22:32 · 10683 阅读 · 0 评论 -
Python-property
前言:半夜了好累啊,今天就这样二零休息休息早上想早点起来!!!Python内置的@property装饰器就是负责把一个方法变成属性调用的,而@property真正强大的是可以限制属性的定义class User(object): @property def age(self): return self._age @age.setter def age(self, value): if not isinstance(value, int):原创 2020-06-25 00:07:33 · 10487 阅读 · 1 评论 -
Python-dict的子类
不建议list和dict的数据结构因为这两个数据结构基于c语言class myDcit(dict): def __setitem__(self, key, value): super().__setitem__(key, value * 2)myDcit = myDcit(x=1)print(myDcit)我们看到这个Mydict并没有调用__setitem__这个魔法函数而myDcit['x'] = 1print(myDcit)却成功了通常建议继承自c原创 2020-06-21 12:08:45 · 13538 阅读 · 0 评论 -
Python-with与contextlib简化的上下文管理器学习笔记
文章目录上下文管理器contextlib简化上下文管理器上下文管理器上下文管理器with实现__enter__、__exit__这两个魔法函数举个简单的例子# 上下文管理协议class Simple: def __enter__(self): print(1) return self def __exit__(self, exc_type, exc_val, exc_tb): print("exit") def doSom原创 2020-06-19 21:12:59 · 13222 阅读 · 0 评论 -
Python对象的自省机制学习笔记
自省是通过一定的机制查询到对象的内部结构__dict__通过__dict__查询属性class User: name = "Y4tacker"class Student(User): def __init__(self, schoolname): self.schoolname = schoolnameif __name__ == '__main__': user = Student("aaa") # `__dict__查询属性` p原创 2020-06-19 20:32:00 · 13190 阅读 · 0 评论 -
Python数据封装和私有属性
一个简单的例子class User: def __init__(self,birthday): self.birthday = birthday def getAge(self): return 2020-self.birthdayif __name__ == '__main__': user = User(2005) print(user.getAge())注意:python封装使用双下划线,self.__birthday = b原创 2020-06-19 20:10:54 · 13413 阅读 · 0 评论 -
Python静态方法、类方法、对象方法以及参数学习笔记
这一节太好理解了,就粘贴上老师的代码,记录一下就行实例化方法:tomorrow静态:staticmethod类方法:classmethodclass Date: #构造函数 def __init__(self, year, month, day): self.year = year self.month = month self.day = day def tomorrow(self): self.day +=原创 2020-06-19 19:24:10 · 13453 阅读 · 0 评论 -
Python类和实例属性的查找顺序学习笔记(mro)
一个简单的例子class A: name = "1" def __init__(self): self.name = "aaa"if __name__ == '__main__': a = A() print(a.name)结果为:aaa查找顺序:由下而上,第一步查询实例的name,如果查不到则向上查找,查找到类的name关于MRO(C3真的牛逼)查找网上资料了解下即可附上代码,自己复习的时候体会:第一种:菱形继承class D:原创 2020-06-19 18:12:16 · 13339 阅读 · 0 评论 -
Python类变量与实例变量学习笔记
class A: # aa为类变量 aa = 1 # xy为实例变量 def __init__(self, x, y): self.x = x self.y = yif __name__ == '__main__': # a是实例A是一个类 a = A(2, 4) # 这里面xy就是实例变量,aa为类变量,a.aa会优先查找对象的变量,找不到则向上查询类变量 print(a.aa, a.x, a.y)原创 2020-06-19 16:51:39 · 13220 阅读 · 0 评论 -
Python-isinstance与type学习笔记
推荐isinstance!!!isinstace内部会检查继承链class A: passclass B(A): passif __name__ == '__main__': b = B() # b是不是B的类型 print(isinstance(b, B)) # b是不是A的类型 print(isinstance(b, A)) # typeb指向B这个对象 print(type(b) is B)附加:is 和原创 2020-06-19 16:28:22 · 13176 阅读 · 0 评论 -
Python抽象基类(abc)
ddd原创 2020-06-19 16:15:55 · 13314 阅读 · 0 评论 -
Python-Super
文章目录super简单案例super的调用顺序super简单案例class A: def __init__(self): print("A")class B(A): def __init__(self): print("B") super().__init__()if __name__ == '__main__': b = B()在某些继承条件下super必须调用,比如多线程super的调用顺序先看这个例子原创 2020-06-19 10:40:03 · 13062 阅读 · 0 评论 -
Python鸭子类型和多态
补充:list.extend()里面不只是list只要是可迭代对象都可,包括生成器等getitem魔法函数一定要有报错条件退出def __getitem__(self, item): return "222" 这种就不行,因为它在迭代过程中 getitem会尝试不同的item直到抛出异常停止,所以可以改成这样def __getitem__(self, item): return self.mylist[item]文章目录Python的多态鸭子类型Python的多态不同于原创 2020-06-18 22:55:17 · 13232 阅读 · 0 评论 -
Python魔法函数简单介绍学习笔记
文章目录魔法函数what is magic function?Python数据模型以及数据模型对Python的影响Python中的魔法函数__str__对象字符串格式化\_\_repr\_\_len()函数特殊性补充for循环魔法函数what is magic function?python中定义的以双下划线开头和结尾,可以增强对象的特性Python数据模型以及数据模型对Python的影响自行百度了解Python中的魔法函数老师说在后面会在后面章节中贯穿讲解__str__对象字符串格式化原创 2020-06-18 14:42:06 · 13642 阅读 · 0 评论 -
Python中常见的内置类型
文章目录对象的三个特征Python内置类型None(全局只有一个)数值迭代类型序列类型映射(dict)集合上下文管理类型(with语句)其他对象的三个特征身份(地址可以使用id(变量名)查看)、类型、值举例说明:a=1,1是a这个对象的值,1由python的解释器用int类型来封装后由a这个对象指向封装后的1这个对象Python内置类型None(全局只有一个)Python解释器在启动的时候会用None这个类型生成一个None的对象验证:数值int、float、complex(复数)、b原创 2020-06-18 12:59:59 · 13134 阅读 · 0 评论 -
Python-type、object与class的关系学习笔记
文章目录type、object与class的关系type、object与class的关系x = 1print(type(1))print(type(int))结果分别为int、type,说明type生成一个int再由int生成1type->str->" 111"type->class->obj得出,类是由type这个类生成的对象,Object是最顶层的基类(类名._bases_)可查看其所继承基类;type是一个类(用bases语句看出继承Object),同时ty原创 2020-06-18 08:10:48 · 13143 阅读 · 0 评论 -
Python中关于一切皆对象的深入理解
文章目录Python一切皆对象与Java对比讲解一切皆对象函数与类都是对象可以赋值给变量可以添加到集合对象中作为参数传递给函数作为函数的返回值(由于装饰器的原理)Python一切皆对象与Java对比讲解一切皆对象Python中所有东西都是对象,在Java中我们了解过,Python的面向对象更为彻底,Python一切皆对象的理念就是Python更为灵活的原因,其类与函数以及代码和模块都是对象,让其动态性得到充分体现函数与类都是对象可以赋值给变量示例一:def write(name="aaa"):原创 2020-06-18 00:14:49 · 13289 阅读 · 0 评论 -
Python线程优先级队列学习笔记(没太搞懂,先记录在这里)
前言:就菜鸟教程里面所说,Python 的 Queue 模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列 PriorityQueue。这些队列都实现了锁原语,能够在多线程中直接使用,可以使用队列来实现线程间的同步。文章目录Queue 模块中的常用方法Queue 模块中的常用方法Queue.qsize() 返回队列的大小Queue.empty() 如果队列为空,返回True,反之FalseQueue.full()原创 2020-06-17 14:24:18 · 13148 阅读 · 0 评论 -
Python-threading多线程进阶(线程守护、线程同步-互斥锁和递归锁、BoundedSemaphore、Event)
文章目录多线程(复习)一般创建方式(不常用)自定义线程(继承threading.Thread)进阶知识守护线程让主线程等待子线程结束线程共享全局变量线程同步互斥锁递归锁BoundedSemaphore类事件(Event类)关于什么是多线程,就不记录了,我随便百度都是一堆堆,主要是记录对自己有用处的笔记,在这里我主要是使用threading模块多线程(复习)一般创建方式(不常用)注意:args参数为一个元组,如果只有一个参数别忘了后面的逗号import threadingimport time原创 2020-06-16 13:17:53 · 11582 阅读 · 0 评论 -
Python高阶函数---map()
文章目录map对于map的简要描述一个简单例子结合匿名函数使用本文讲解内容基于Python3.x,只涉及到较为基础的概念,仅仅只是博主的一个学习笔记,如有错误欢迎纠正!map对于map的简要描述map()是 python 中内置的一个高阶函数,它接收一个函数 和一个可迭代对象,并通过把函数 f 依次作用在可迭代对象的每个元素上,得到一个新的迭代器(Python2则直接返回一个列表)一个简...原创 2020-03-16 16:34:36 · 21596 阅读 · 0 评论 -
程序猿见了会着迷,电脑见了会流泪------生成器
文章目录第一种方式第二种方式文章很生动,不要错过哦!第一种方式我们知道列表生成式为[i for in in range(10)],而如果我们想要创建一个genertor很简单,只需要把[]改为()即可,而且也是一个可以迭代的对象,我们可以用for循环进行遍历generator = (i for i in range(10))for i in generator: print(i...原创 2020-03-15 19:21:21 · 20373 阅读 · 1 评论 -
关于字典键值的遍历你该了解这个特殊的方法
文章目录常见遍历字典键值的方式引入常见的两种得到字典键值方式items()方法常见遍历字典键值的方式引入先来看看下面的代码:dic = {'apple': '1','orange':'2','banana':'3'}for i in dic: print(i)它会循环遍历输出字典中的键,也就是apple、orange、banana;常见的两种得到字典键值方式那如果我们想要...原创 2020-03-15 18:19:30 · 19813 阅读 · 0 评论 -
在平时学习中遇到的各种Python的坑总结(持续更新)
1.自定义函数默认参数的问题今天我在看廖雪峰大佬的笔记里面,看到了个def add_end(L=[]): L.append('END') return L当你正常调用传入参数的时候,它的运行结果总是正常的,而当你一直调用add_end()这个多次以后你会发现结果很神奇原因解释如下:(来自廖雪峰大佬网址,点击姓名直达)Python函数在定义的时候,默认参数L的值就被计...转载 2020-03-15 11:25:30 · 20597 阅读 · 0 评论 -
Python装饰器------@property
文章目录引言@property设置可读写属性设置只读属性引言首先我们定义一个Person类,这里多说一点在Python3.x中Person()与Person(object)是一样的,默认帮你加载了Object类class Person(): def get_height(self): return self._height def set_height(s...原创 2020-03-15 09:23:46 · 19554 阅读 · 1 评论