1. 设计一个类: 设计一个类主要从三个方面进行考虑: 第一:类名:类名要见名知意.首字母大写. 第二:属性. 第三:方法. 备注:在Python中有些东西并不是绝对化的事情,有些根据Python社区里面有些约定俗称的规定,在Python这种动态语言当中随处可见,比如像__._单双下划线的使用就是这个问题的一个体现. 2. 创建一个类: 类:一种数据类型,本身并不占内存空间,根据所学过的number.string.boolean等类似,用类创建实例化对象. 格式: class 类名(父类列表):…
1. 限制访问的问题: 如果学过C# 语言的我们可以知道C# 语言有get和set方法.我们之前想要获取父类中的私有变量,只能通过写一个set和get的函数进行访问或者通过类生成的新关键字来访问私有属性(_类名__私有变量).其实Python也给我们提供了一种get和set的方法.其内容就是一种装饰器的作用,采取@property和@变量名.setter的方式. 举例说明1: # 属性直接对外暴露 # 不安全,没有熟虑过滤 # 使用限制访问的话,需要些set和get方法. from types…
1. 软件编程的实质: 软件编程就是将我们的思维转变成计算机能够识别语言的一个过程.重要的是思想,代码技术反而次要.因此思想也是最难的,突破固定的思想是关键 2. 什么是面向过程: * 自上而下顺序执行,逐步求精. * 程序结构是按照功能划分成若干个基本模块,这也是一种树状结构. * 各个模块之间的关系尽可能简单,在功能上又相对独立. * 每一个模块内部结构是由顺序.选择.循环三种基本结构. * 模块化实现的方法是使用子程序. * 程序流程是在写程序时就已经决定了. 3. 什么是面向对象? *…
1. 重载: overloading:就是将函数重新定义一遍. 1.1 __str__( )和__repr__( )的重载: 格式: __str__( ):在调用print打印对象时自动调用,是给用户用的,是一个描述对象的方法. __repr__( ):给机器用的,在Python解释器或者在cmd的黑屏终端里面输入,注意在没有str时,且有repr,str = repr,其实本事就是打印类本身想要实现的属性. 举例说明1: class Person(object): def __init__(s…
说道这里我们需要稍微暂停一下.前面我们说到了类是作为一个对象存放容器.这个容器里面有属性和方法.最好的理解类的方式就是把类想想成一个容器. 然后构造了一个析构函数和构造函数,然后又对object和self进行了解释,最后又说了一下重写.我们发现类作为一个存放对象的容器,其类也是一个对象. 类也有自己的__main__,__init__,__class__等属性.我们发现了,越来越多的时候,在Python里面用了很多下划线来表示这些意思.下划线分双下划线和单下划线两种,一共又存在5中组合,这5中组…
1. 构造函数: 为什么要有构造函数? 打一个比方:类的创建就是好比你创建了好了一种格式的房间,你租给上一个住户的后,里面会对方很多“垃圾”和不规则的物品摆放.构造函数就是下一个住户再使用的时候进行物品的初始化摆放,防止下一个用户再使用的时候会出现没有初始化物品错放的错误等. 构造函数的格式: __init__( ): 注意:在使用创建对象的时候会自动调用,构造函数用于初始化类实例的状态.如果不显式的创建构造函数,默认会自动添加一个构造函数.其实由于没有本身都会带上这个构造函.但是还是要写上比较…
1. 我们学了类的这些东西,用这些类我们来操作一个关于类的实例. 2. 题目:人开枪射击子弹,然后具有装弹动作,然后再开枪. 第一步:设计类: 人类名:Person属性:gun行为:fire,fillBullet 枪类名:Gun属性:bulletBox行为:shoot 弹夹类名:BulletBox属性:bulletCount行为: 分析:我们采取倒序的方式来设计这段面向对象的程序.人——枪——弹夹——发射,我们可以看出发射是最后一个动作. 第二步:创建类: 我们用图示的方式来演示这么一段代码的过…
1. 对象属性和类属性. 我们之前接触到,在类中,我们一般都是通过构造函数的方式去写一些类的相关属性.在第一次介绍类的时候我们把一些属性写到构造函数外面并没有用到构造函数,其实当时在写的时候,就是在给类进行属性的添加,类也是具有属性. 举例说明1: class Person(object): """ 写在这个位置的叫做类属性 """ name = "Person" def __init__(self,name): "…
1. 多态的概念 多态:一种事物的多种形态.其表现形式就是连续的继承关系. 还以人喂食动物的例子.最终目标是人可以喂食任何一种动物.如果人要喂食100多种动物,难道要写100中方法吗?多态就是把属性和方法进行连续的继承方式 ,把属性和方法在不同的位置进行传导. 我们一一个图示为例子: 原来的继承方式是这样: 多态作为一种传导,变成为这样形式: 举例代码如下: # 定义一个人类,可以喂猫和老鼠吃东西 # 思考:人要喂100种动物,难道要写100种方法吗? # tom和jerry都继承自动物 cla…
1. 概念解释: 继承:有两个类:A类和B类.那么A类就拥有了B类中的属性和方法. * 例如:Object:是所有类的父亲,还可以成为基类或者超类(super()) * 继承者为子类,被继承者成为父类. 2. 继承的作用: * 继承花间了代码,减少了冗余. * 提高了代码的健壮性. * 提高了代码的安全性. * 是多态的前提.(Polymorphism) 继承也有缺点:继承是高内聚.高耦合的形态. (备注:耦合和内聚是描述类与类之间的关系.耦合性越低.内聚性越高,代码质量越好) 3. 单继承:…
[笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE    编程之魅  Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新.阅读规则.导图下载. ★ 目前文章更新主平台已迁移至公众号「数林觅风」,ID:zoemindmap,博客只在每月末集中更新一次.所有「PDF&高清原图」只需在公众号后台回复关键词或者直接从菜单栏进入即可下载. 本文是我的「Python学习笔记」第四篇.主要涉及了python编程中的「文件对象」&…
一.动态语言与静态语言 1.1 动态语言 在运行时代码可以根据某些条件改变自身结构 可以在运行时引进新的函数.对象.甚至代码,可以删除已有的函数等其他结构上的变化 常见的动态语言:Object-C.C#.JavaScript.PHP.Python.Erlang 1.2 动态类型语言 在运行期间检查数据类型的语言 数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段 常见的动态类型语言:Python.Ruby.Erlang.JavaScript.swift.PHP.Perl 1.3 强类型…
---恢复内容开始--- python动态添加属性: class Person(object): def __init__(self,newName,newAge): self.name = newName self.age = newAge laowang = Person("laowang",20) print(laowang.name) print(laowang.age) laowang.addr = "北京"#动态添加的属性addr print(laowa…
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动态编译代码的能力…
1. 魔法方法是什么? 魔法方法(Magic Method)是Python比较独特的应用,它可以给你的类增加特殊的方法,如果你的对象实现了(重载),这些方法中的某一个,就会被Python所调用.正如装饰器类似,是对类/函数部分的提炼(装饰器是对关键功能部分的封装).一般情况下,是对类中方法和属性一种提炼. 2. 魔法方法详细解释: 前面我们用过__init__,__repr__,__str__等魔法方法,我们在这里做一个总结,查遗补漏,由于这个位置在Python中比较松散的表示.这里做一个分别的…
1. 概述: 我们在前面用了很多的装饰器这个工具的方法.这个位置要系统的讲一下装饰器. 1.2 为什么需要装饰器. 装饰器本质是一个Python函数,它可以让其他函数在不需要任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓存.权限校验等场景.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重要. 概括的讲,装饰器的作用就是为已经存在的函数或端详添加额外的功能. 2…
1. 元数据和反射概念: 有关程序及其类型的数据成为元数据(metadata),他保存在程序的程序集中. 反射这个词儿听起来比较陌生.程序在运行时,可以查看其它程序集或其本身的元数据.一个运行的程序查看本身的元数据的行为成为反射(reflection) 对象浏览器是显示元数据的程序的的一个示例.他可以读取程序集,然后显示所包含的类型及类型的所有特性和成员. 2.举例说明: 比如:我们现在有这样一个需求,已有三个函数fun1,fun2,fun3这三个函数,我们都找到如果我们想调用其中某个函数的时候…
1. 性能: py3.x起始比py2.x效率低,但是py3.x现有极大的优化空间,效率正在追赶. 2. 编码: py3.x原码文件默认使用的utf-8编码,使得变量名更为宽阔. 3. 语法: * 去除了<>,改为 != * 加入了as和with关键字,还有True.False.None * 整型触发返回浮点数,整除使用 // * 键入nonlocal语句 * 除去了print语句,加入了print()函数 * 除去了raw_inpu,加入了input()函数 * 新的super(),可以不在用…
1. Label控件: 说明:标签控件,可显示文本 图示1: 实例1: import tkinter # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置 # Label:标签控件,可以显示文本 # win:父窗体 # text:显示的文本内容 # width…
Tornado是一个基于python的web框架,xxxxx 安装 python -m pip install tornado 第一个Tornado程序 安装完毕我们就可以新建一个app.py文件,放入下面的代码直接运行就可以了,然后在浏览器访问127.0.0.1:8888 import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.writ…
一.引言 什么?有了第二篇文件操作还不够?远远不够!而且在读完第三篇文件操作还是不够.关于文件的操作,后续的学习中将不断学习新的操作方式,使用更加合适的方法. 进入正题,上一篇讲到,Python对文件最基本的读取写入操作,都必须是字符串,所有的数据必须要转化成字符串写入,都出来的也全部都是字符串,这会给我们实际应用中造成一些困扰,上一篇文章讲述了如何使用eval()函数,但是也有局限性,比如:字符串格式稍有错误(结尾带有换行符\n)就会转换出错:写入文件之前在内存中的int型数据,写入读取仔ev…
阅读目录 一. isinstance(obj,cls)和issubclass(sub,super)二. 反射三. __setattr__,__delattr__,__getattr__四. 二次加工标准类型(包装)五. __getattribute__六. 描述符(__get__,__set__,__delete__)六. 再看property七. __setitem__,__getitem,__delitem__八. __str__,__repr__,__format__九. __next__…
一.subprocess 模块 1.了解os.system()与os.popen的区别及不足 1.1 os.system()可以执行系统指令,将结果直接输出到屏幕,同时可以将指令是否执行成功的状态赋值给变量保存,0表示执行成功 res=os.system('dir') #保存命令执行是否成功的状态 >>> import os >>> x=os.system('df') ---------------------------------------- 文件系统 1K-块…
该篇幅主要记录linux的操作,常见就不记录了,主要记录一些不太常用.难用或者自己忘记了的点. 看到https://www.cnblogs.com/resn/p/5800922.html这篇幅讲解的不错,我这里借鉴部分内容,详细的可以查看那篇博客. LInux目录结构: / : 所有目录都在/boot : boot 配置文件.内核和其它启动 时所需的文件/etc : 存放系统配置有关的文件/home : 存放普通用户目录/mnt : 硬盘上手动 挂载的文件系统/media : 自动挂载(加载)的…
1. 匹配单个字符和数字: . --->> 匹配除换行符以外的任意字符.[0123456789] --->> []字符集合,表示匹配方括号中所包含的任意一个字符.[Thomas] --->> []字符集合,表示匹配方括号中所包含的任意一个字符.匹配'T','h'...任意一个字符.[a-z] --->> - 匹配任意小写字母[A-Z] --->> - 匹配任意大写字母[0-9] --->> 匹配任意数字,类似于[0123456789]…
1. 表格数据显示: 图示: 实例: import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win.title("Thomas的窗口") # 设置大小和位置 win.geometry("600x400+1500+100") #格式:400x400表示大小,200和0表示位置 # 表格数据 tree = ttk.Treeview(win) tree.pack() #…
入门编程思想,由传统“算法”引申到“编程”思想 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 第三天_C_Sharp运算符 { //练习,编程实现几天是几周零几天? class Program { static void Main(string[] args) { ; ; ; Console.…
1. 多任务原理: 现代操作系统,像win,max os x,linux,unix等都支持多任务. * 什么叫做多任务? 操作系统可以同时运行多个任务. * 单核CPU实现多任务原理? 操作系统轮流让各个任务交替执行,比如QQ执行2us,切换到微信,再执行2us,在切换到其他应用,再执行2us... ...,如此交替往复.表面上看每个任务反复执行下去,但是CPU调度执行速度太快了,导致我们感觉就像所有任务都同时执行一样. * 多核CPU实现多任务原理? 真正的并行执行多任务只能在多核CPU上实现…
1. 从一个判断手机号的问题引入: 如果给你一个字符串,去判断是否是一个手机号码,我们通过之前的学习可以有如下代码: # 如果用普通的方式去检验一个电话号码非常麻烦. def checkPhone(str): : return False elif str[] != ": return False elif str[:] != :] != ": return False ,): ": return False return True print(checkPhone(&quo…