1.先叙述静态方法: 我们知道Python调用类的方法的时候都要进行一个实例化的处理.在面向对象中,一把存在静态类,静态方法,动态类.动态方法等乱七八糟的这么一些叫法.其实这些东西看起来抽象,但是很好理解.这里面有一个难点就是静态方法的理解,我们先叙述这个概念. 比如在C#语言中,我们一般在在一个类前面加上类似于staci这样的关键字 public 类名{ static void 方法(){ } } 一般这个时候方法可以直接用“类名.方法名”的方式直接调用类中的方法.其实这种方法叫做直接引用的方…
Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Python通常不是一种编译语言,你可能想知道为什么要使用Python编译器.答案当然是:运行本地编译的代码要比运行动态的.解译的代码快很多倍.Numba允许你为Python函数指定类型签名,从而在运行时启用编译(这就是“Just-in-Time”,即时,也可以说JIT编译).Numba动态编译代码的能力…
函数式编程是指用一系列函数解决问题 好处:用每个函数完成每个细小的功能,一系列函数任意组合能够解决大问题 函数仅仅接收输入并产生输出,不包含任何能影响输出的内部状态 函数之间的可重入性 当一个函数的输入实参一定,结果也必须一定的函数为可重入函数 例子: #可重入函数 def myadd(x,y): return x+y #不可重入函数 s = 0 def myadd2(x,y): global s s+= x+y return s 高阶函数 map filter sorted 什么是高阶函数 ​…
python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def test(n): print(n) test(dac) 输出结果为 函数类型function 2,把函数做为返回值,也是高阶函数 def test(x,y): return abs,x,y 输出结果为 列表,包含 函数,参数 文章来自(www.96net.com.cn)…
1. 魔法方法是什么? 魔法方法(Magic Method)是Python比较独特的应用,它可以给你的类增加特殊的方法,如果你的对象实现了(重载),这些方法中的某一个,就会被Python所调用.正如装饰器类似,是对类/函数部分的提炼(装饰器是对关键功能部分的封装).一般情况下,是对类中方法和属性一种提炼. 2. 魔法方法详细解释: 前面我们用过__init__,__repr__,__str__等魔法方法,我们在这里做一个总结,查遗补漏,由于这个位置在Python中比较松散的表示.这里做一个分别的…
1. 概述: 我们在前面用了很多的装饰器这个工具的方法.这个位置要系统的讲一下装饰器. 1.2 为什么需要装饰器. 装饰器本质是一个Python函数,它可以让其他函数在不需要任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓存.权限校验等场景.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重要. 概括的讲,装饰器的作用就是为已经存在的函数或端详添加额外的功能. 2…
1. 匹配单个字符和数字: . --->> 匹配除换行符以外的任意字符.[0123456789] --->> []字符集合,表示匹配方括号中所包含的任意一个字符.[Thomas] --->> []字符集合,表示匹配方括号中所包含的任意一个字符.匹配'T','h'...任意一个字符.[a-z] --->> - 匹配任意小写字母[A-Z] --->> - 匹配任意大写字母[0-9] --->> 匹配任意数字,类似于[0123456789]…
1.协程的概念: 子程序或者子函数,在所有语言中都是层级调用,比如A调用B,再B执行的过程中又可以调用C,C执行完毕返回,B执行返回,最后是A执行完毕返回.是通过栈来实现的,一个线程就是执行一个自称,自称调用时一个入口,一次返回,调用的顺序是明确的. 代码: def C(): print("C--Start") print("C--end") def B(): print("B--Start") C() print("B--end&qu…
1.多任务的实现原理: 通常我们会设计Mater-Workder模式,Master负责分配任务,Worker负责执行任务,因此多任务环境下,通常是一个Master,多个Worker 2.多进程: 主进程就是Master,其他进程就是Worker 稳定性高:一个子进程崩溃了,不会影响主进程和其他子进程,当然主进程挂了,所有进程就全挂了,但是Master进程只负责分配任务,挂掉的概率低. 创建进程的代价大:在UNIX/LINUX系统下,用fork调用还可以,在Windows下创建进程开销巨大. 操作…
1. 多任务原理: 现代操作系统,像win,max os x,linux,unix等都支持多任务. * 什么叫做多任务? 操作系统可以同时运行多个任务. * 单核CPU实现多任务原理? 操作系统轮流让各个任务交替执行,比如QQ执行2us,切换到微信,再执行2us,在切换到其他应用,再执行2us... ...,如此交替往复.表面上看每个任务反复执行下去,但是CPU调度执行速度太快了,导致我们感觉就像所有任务都同时执行一样. * 多核CPU实现多任务原理? 真正的并行执行多任务只能在多核CPU上实现…
1. 元数据和反射概念: 有关程序及其类型的数据成为元数据(metadata),他保存在程序的程序集中. 反射这个词儿听起来比较陌生.程序在运行时,可以查看其它程序集或其本身的元数据.一个运行的程序查看本身的元数据的行为成为反射(reflection) 对象浏览器是显示元数据的程序的的一个示例.他可以读取程序集,然后显示所包含的类型及类型的所有特性和成员. 2.举例说明: 比如:我们现在有这样一个需求,已有三个函数fun1,fun2,fun3这三个函数,我们都找到如果我们想调用其中某个函数的时候…
1. 文档检测: 我们观察官方的函数编写的时候会在函数或者类当中有些类的备注,这些备注叫做文档.当我们在编写函数的时候,可以去显示这些文档.因此我们可以用这个文档来进行检测.另外我们还需要导入doctest的库. 实例: import doctest # doctest模块可以提取注释中的代码去执行 # doctest严格按照Python交互模式的输入提取 def mySum(x,y): ''' 求两个数的和 get The Sum from x and y :param x: firstNum…
1. map()函数: 原型:map(fn,lsd) 参数1是函数 参数2是序列 功能:将传入的函数一次作用在序列中的每一个元素.并把结果作为一个新的Iterator返回.其实map函数就是一个for循环查找.需要functools库. 图示: 实例1: # 实例1:from functools import reduce# python内置的map函数 def chr2int(str): ,,,,,,,,,}[str] # return后面哪一窜表示将单个字符转换成对应的字面量整数,按照键去取…
1. 线程概述: 在一个进程的内部,要同时干多件事情,就需要同时运行“多个子任务”,我们把进程内的这些“子任务”叫做线程.也就说线程是进程成的子任务. 线程通常叫做情景的进程.线程是通过向内侧控件的并发执行的多任务.每一个线程都共享一个进程的资源. 线程是最小的执行单元,而进程至少由一个线程组成.如何调度进程和线程,完全由操作系统决定,用户程序不能自己决定什么时候执行.执行多长时间. 线程有两个模块: _thread模块:低级模块(现在很少用了) threading模块:高级模块,是对_thre…
1.二次封装: 二次封装其实就是对一个类或者一个方法进行二次的改造增加新的功能. 2.一个类的二次封装: 我们以一个进程为例,我们把Process这个库进行二次封装,增加一些功能,在调用. thomasProcess.py为二次封装的类: from multiprocessing import Process import os,time class ThomasProcess(Process): def __init__(self,name): Process.__init__(self) s…
1. re.split 正则的字符串切割 str1 = "Thomas is a good man" print(re.split(r" +",str1)) # " +" :至少一个是空格 # ['Thomas', 'is', 'a', 'good', 'man'] 2. finditer函数: 原型:re.findinter(pattern,string,flags=0) 参数: pattern:要匹配的正则表达式 strings:要匹配的字符…
1. 从一个判断手机号的问题引入: 如果给你一个字符串,去判断是否是一个手机号码,我们通过之前的学习可以有如下代码: # 如果用普通的方式去检验一个电话号码非常麻烦. def checkPhone(str): : return False elif str[] != ": return False elif str[:] != :] != ": return False ,): ": return False return True print(checkPhone(&quo…
1. 对类进行单元检测: 第一步:首先编写一个类: # 类名Person,person.py class Person(object): def __init__(self,name,age): self.name = name self.age = age def getAge(self): return self.age 第二部分:编写单元检测类进行类检测: import unittest from person import Person class Test(unittest.TestC…
1. 对函数进行单元检测: 单元检测: 作用:用来对一个函数.一个类.一个模块进行正确性校验工作. 结果: * 单元测试通过,说明我们测试函数的功能正确. * 单元测试不通过,说明函数有BUG,要么测试条件输入有误. 第一步:首先确定想要检测目标函数: def mySum(x,y): # x += return x + y def mySub(x,y): return x - y # print(mySum(,)) 第二步:编写函数单元检测类: import unittest from 对函数进…
1. sorted函数: 常用的排序分:冒泡排序.选择排序.快速排序.插入排序.计数器排序 实例1:普通排序 # 普通排序 list1 = [,,,,] list2 = sorted(list1) # 升序排序 print(list1) print(list2) # [, , , , ] # [, , , , ] 实例2:按绝对值大小排序 # 按绝对值大小排序 list3 = [,-,,,-] # key接受函数来实现自定义排序规则,取绝对值排序后,在添加绝对值 # list4 = sorted…
1. filter函数: 原型:filter(fn,lsd) 参数1为函数 参数2为序列 功能:用于过滤序列,把传入的函数一次作用域序列每个元素,根据返回的是True还是False决定是否保留该元素. 实例1: # 实例1: # 判断是不是偶数 list1 = [,,,,,,,,] # 删选条件 def func(num): # 偶数保留 == : return True # 奇数剔除 return False l = filter(func,list1) # [func()] print(li…
0. MATLAB真实航母基本的工具,其中的函数/工具不计其数,而且有些函数/工具非常的炫酷.在MATLAB第四篇章把平时工作中用到的些许函数进行使用的讲解 主题1.:drawnow 解释:更新图窗并处理回调 说明:drawnow更新图窗并处理任何挂起的回调.如果您修改图形对象并需要在屏幕上立即查看此次更新,请使用该命令.这就是把图形更新的过程进行动态的流数据的动画. 后面有几个方法: 方法1.limitrate,更新数量限制为每秒20帧.如果上次更新后不到50毫秒,则会丢弃新的更新 方法2:n…
% 定义一个句柄并用这个句柄求值 h = @sin; h(3) % % 命令窗口返回内容 % h(3) % ans = % 0.1411 %定义一个完整句柄,@参数+表达式的形式,并给句柄传参 h1 = @(x)mean(x); x = [1 2 3 4 5]; h1(x) % % 命令窗口返回内容 % h1(x) % ans = % 3 %arrayfun的简单应用 h1 = @(x)mean(x); x = [1 2 3 4 5]; % 可以用句柄的形式传入第一个形参位置,也可以直接@句柄内…
大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!QQ群:1097524789 为了配合 Python办公自…
目录: 装饰器 生成器 迭代器 Json & pickle 数据序列化 软件目录结构规范 1. Python装饰器 装饰器:本质是函数,(功能是装饰其它函数)就是为其他函数添加附加功能 原则: >不能修改被装饰的函数的源代码 >不能修改被装饰的函数的调用方式 实现装饰器知识储备: >函数即“变量” >高阶函数 a)把一个函数名当做实参传给另外一个函数(在不修改源代码的请情况下) b)返回值中包含函数名(不修改函数的调用方式) >嵌套函数 高阶函数+嵌套函数=>装…
一.函数的介绍 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数 函数的好处: 代码重用 保持一致,易于维护 可扩展性 二.函数的定义 函数的定义规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 () 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数 函数的第一行语句可以选择性地使用文档字…
前言 木子本人搞起Python已有多年,一直觉得什么都会,但是有时候实操起来,才觉得很多底层基础的知识都没有彻底的灵活掌握. 另外,网上关于Python基础知识的各种普及已有太多太多. 附上相关大神的技术栈: Python3官方文档 Python3菜鸟教程 Python3廖雪峰的网站 本人的写作水平有限,肯定比不上各种大佬的技术文章.博客只是对于自身知识的总结,提炼,当然如果能够帮助到各位看客,木子本人也非常高兴. 简述 闲话不多说,本篇博客,主要针对Python的 匿名函数 lambda 高阶…
一.递归 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归要求: 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧.由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出) def calc(n): print(n) if…
一.匿名函数 lambda表达式 用一句话来表达只有返回值的函数,叫匿名函数特点:简洁方便语法:lambda 参数: 返回值 1.不带有参数的lambda表达式 def func():    return "今天要下雨,天气挺冷" #定义一个lambda表达式func = lambda : "今天要下雨,天气挺冷"res = func()print(res) 2.带有参数的lambda表达式 def func(n):    return type(n) func =…
序列函数: enumerate: for循环时记录索引,逐个返回元组(i, item) sorted:返回新的有序列表 zip:压缩将多个序列的对应位置的元素组成元组 zip(*元组列表): 解压缩 reversed 逆序迭代,可配合list返回逆序列表 update 合并字典 hash 函数,只存在唯一值,只有这种才能作为键 lis = ['a','b','c'] for i,item in enumerate(lis): print(str(i)+'-'+item) 0-a1-b2-c li…