摘要: 一、动态添加属性 二、动态给实例添加方法 三、动态给类添加方法 四、限制实例的属性 __slots__ __slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的: 除非在子类中也定义__slots__,这样,子类实例允许定义的属性就是自身的__slots__加上父类的__slots 阅读全文
posted @ 2017-12-17 18:58 魂~ 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 一、实例属性 Python是动态语言,根据类创建的实例可以任意绑定属性。 二、类属性 直接在class中定义属性,这种属性是类属性,归Student类所有。 在编写程序的时候,千万不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访 阅读全文
posted @ 2017-12-17 16:34 魂~ 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 一、type()函数 判断基本数据类型可以直接写int,str等: 判断一个对象是否是函数: 二、isinstance()函数 对于class的继承关系来说,使用type()就很不方便。如果要判断class的类型,可以使用isinstance()函数。 用isinstance()判断基本类型: 并且 阅读全文
posted @ 2017-12-17 16:09 魂~ 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 一、继承 当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的run(),在代码运行的时候,总是会调用子类的run()。 二、多态 当我们定义一个class的时候,我们实际上就定义了一种数据类型。 看来c不仅仅是Dog,c还是Animal!所以,在继承关系中,如果一个实例的 阅读全文
posted @ 2017-12-17 14:43 魂~ 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 一、双下划线 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。 双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。不能直接访问__name是因为Pyt 阅读全文
posted @ 2017-12-17 14:06 魂~ 阅读(819) 评论(0) 推荐(0) 编辑
摘要: 一、类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 在Python中,定义类是通过class关键字,class后面紧接着是类名, 阅读全文
posted @ 2017-12-17 13:26 魂~ 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 一、面向对象和面相过程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把 阅读全文
posted @ 2017-12-17 12:57 魂~ 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 一、pip工具使用 安装windows版本python,自带pip工具。2者路径相同。 如果设置了环境路径,可以直接在命令提示符窗口下尝试运行pip。如果没有设置环境路径,可以先cd命令到pip工具的安装文件夹下,再运行pip。 安装Pillow模块: 二、批量安装常用模块 安装Anaconda。 阅读全文
posted @ 2017-12-17 12:34 魂~ 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 1、第一行代码在linux和mac系统下,该脚本可以直接运行。 2、第二行代码指定该文件使用标准utf-8标准。 3、第四行代码文档注视,任何模块代码的第一个字符串都被视为模块的文档注释。 4、第六行代码导入sys模块。 5、第八行代码使用__author__变量把作者写进去。 6、第二十一行代码, 阅读全文
posted @ 2017-12-17 12:19 魂~ 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 偏函数是某一种函数带有固定参数的实现。 functools.partial创建一个偏函数。 functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。 阅读全文
posted @ 2017-12-17 11:56 魂~ 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 一、装饰器定义 在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。本质上,Decorator就是一个返回函数的高阶函数。 观察上面的log,因为它是一个decorator,所以接受一个函数作为参数,并返回一个函数。要借助Python的@语法,把decorator置于函数的定义 阅读全文
posted @ 2017-12-17 11:09 魂~ 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 一、lambda使用语法: 关键字lambda表示匿名函数,冒号前面的x表示函数参数,冒号后面只能有一个表达式,不用写return,返回值就是该表达式的结果。 无参数lambda表达式: 二、匿名函数是一个函数对象 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数 阅读全文
posted @ 2017-12-17 10:33 魂~ 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 一、函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 当我们调用lazy_sum()时,每次调用都会返回一个新的函数,即使传入相同的参数: 二、闭包 在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个 阅读全文
posted @ 2017-12-17 10:20 魂~ 阅读(510) 评论(0) 推荐(0) 编辑