![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
文章平均质量分 53
jaycain
模式识别与智能系统硕士研究生在读。
展开
-
实用python代码分析工具(错误跟踪、效率和内存泄漏分析)
traceback收集错误信息,并打印import traceback try: ...#代码块 except Exception as e: traceback.print_exc()pyinstrument代码效率分析from pyinstrument import Profilerprofiler = Profiler()profiler.start() ...# 代码块profiler.stop()print(profiler.out原创 2021-09-15 11:52:55 · 770 阅读 · 0 评论 -
如何从Ros bag包中提取图像数据?
从录好的数据包中将图片按帧保存到文件夹,生成数据集#coding:utf-8import rosbagimport rospyimport cv2import imutilsfrom sensor_msgs.msg import Imagefrom cv_bridge import CvBridgefrom cv_bridge import CvBridgeErrorpath='/path/to/image/' #存放图片的位置class ImageCreator(): d原创 2021-04-06 14:45:01 · 1254 阅读 · 0 评论 -
python中变量标识的本质
可能我们在很多地方都看到过一个不引入中间变量交换两个变量值的python写法:a = 10b = 20a,b = b,a # * 探究背后的的原理:Python中变量实际上存的都是地址a实际上保存的是10的地址。b保存的是20的地址。个人理解:在第三行交换那一行,等号右边的相当于是取值,等号左边当然还是变量,等号相当于是改变指向。...原创 2021-03-02 16:46:51 · 175 阅读 · 0 评论 -
读书blog:流畅的python-chapter1、2
总结1、特殊方法,又称魔术方法(magic method):一般以__xxx__的形式表示,使得我们可以让自己的对象实现和支持以下的语义架构,并与之交互:迭代集合类属性访问运算符重载函数和方法的调用对象的创建和销毁字符串表示形式和格式化管理上下文(即with块)利用特殊方法来实现python数据模型的优点:不必记标准操作的名称;可以方便地利用标准库。特殊方法的存在是为了被python解释器调用的。...原创 2021-02-25 19:18:17 · 80 阅读 · 0 评论 -
Python多进程、线程、协程
概念进程 一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志 进程具有的特征:动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;并发性:原创 2021-01-19 19:59:20 · 82 阅读 · 0 评论 -
Python优化:编译优化篇(Cpython、Numba)
概述python为通过编译优化代码效率的方式提供了许多选项,包括纯粹的基于C的编译方式,比如Cython、 Shed Skin和 Pythran,凭借 Numba 的基于 LLVM 的编译方式,还有替代虚拟机的 PyPy,包含了一个内置的即时编译器(JIT)。面向的提升对象调用外部库(例如,正则表达式、字符串操作、调用数据库)的代码在编译后可能不会表现出任何速度提升。 I/O 密集型的程序同样不可能表现出明显的速度提升。因为这是机理问题。类似地,如果你 Python 代码集中于调用向量化的 nump原创 2021-01-18 21:38:04 · 3655 阅读 · 0 评论 -
Python:迭代器与生成器
在学习迭代器与生成器之前,先了解一下迭代的概念。迭代所谓的迭代就是单向遍历取值的过程,可以使用循环取值的对象称为可迭代对象。比如:列表、元组、字典、字符串。我们可以用collections中的Iterable,来判断对象是不是可以迭代的。from collections import Iterable# 判读一个对象是不是可迭代的print(isinstance([],Iterable))print(isinstance({},Iterable))print(isinstance((),It原创 2021-01-15 19:22:00 · 160 阅读 · 1 评论 -
python装饰器
什么是装饰器概括的讲,装饰器的作用就是为已经存在的函数或对象添加额外的功能。装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。简单装饰器的写法就是定义装饰器函数:在内定义一个添加新功能语句的函数a,其参数就是想要修饰的函数的参数变量(想原创 2021-01-14 16:16:35 · 82 阅读 · 0 评论 -
Python高性能瓶颈及一些常用高效库
1.全局解释器对于Python来说,充分利用多核性能的阻碍主要在于Python的全局解释器锁(GIL)。GIL确保Python进程一次只能执行一条指令,无论当前有多少个核心。这意味着即使某些Python代码可以使用多个核心,在任意时间点仅有一个核心在执行Python的指令。以前面调查的例子来说,即使我们有100位提问者,然而一次仅有一位可以提问和接受回答,并没有什么用!2.Python的动态类型以及python并不是编译性语言...原创 2021-01-14 15:39:45 · 372 阅读 · 1 评论 -
Python数据结构常用表示方法
对python中常用的数据结构的简单实现/包调用的总结1、动态数组(用列表List表示)# 初始化可变数组array = []# 向尾部添加元素array.append(2)array.append(3)array.append(1)array.append(0)array.append(2)2、链表(用对象Class表示)链表以节点为单位,每个元素都是一个独立对象,在内存空间的存储是非连续的。链表的节点对象具有两个成员变量:「值 val」,「后继节点引用 next」 。clas原创 2021-01-07 19:04:05 · 760 阅读 · 0 评论 -
Python中如何传递未知数量的函数参数
1、元祖方式:*形参名举例:def make_pizza(*toppings): """概述要制作的比萨""" print("\nMaking a pizza with the following toppings:") for topping in toppings: print("- " + topping) make_pizza('pepperoni')make_pizza('mushrooms', 'green peppe原创 2021-01-07 15:22:21 · 1821 阅读 · 0 评论