
python进阶(慕课)
yipyk
这个作者很懒,什么都没留下…
展开
-
【Python进阶】5-4 __slots__ / __call__
文章目录1、前言2、使用__slots__3、使用__call__1、前言正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:class Student(object): pass然后,尝试给实例绑定一个属性:>>> s = Student()>>&...原创 2020-02-28 15:19:52 · 289 阅读 · 0 评论 -
【Python进阶】5-3 python中 @property
文章目录使用@property小结任务使用@property在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改:s = Student()s.score = 9999这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()...原创 2020-02-28 13:49:26 · 191 阅读 · 0 评论 -
【Python进阶】5-2 数学运算 / 类型转换
文章目录1、数学运算2、类型转换1、数学运算Python 提供的基本数据类型 int、float 可以做整数和浮点的四则运算以及乘方等运算。但是,四则运算不局限于int和float,还可以是有理数、矩阵等。要表示有理数,可以用一个Rational类来表示:class Rational(object): def __init__(self, p, q): sel...原创 2020-02-28 10:42:12 · 1416 阅读 · 3 评论 -
【Python进阶】5-1 __str__() / __repr__() / __cmp__() / __len__()
python中 __str__和__repr__如果要把一个类的实例变成 str,就需要实现特殊方法__str__():class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): ...原创 2020-02-28 09:34:57 · 197 阅读 · 0 评论 -
【Python进阶】4-4 获取对象信息 | type() / isinstance() / dir()
文章目录1、使用type()2、使用isinstance()3、使用dir()小结当我们拿到一个对象的引用时,如何知道这个对象是什么类型、有哪些方法呢?1、使用type()首先,我们来判断对象类型,使用 type() 函数:基本类型都可以用 type() 判断:>>> type(123)<class 'int'>>>> type('st...原创 2020-02-27 15:35:23 · 182 阅读 · 0 评论 -
【Python进阶】4-3 多重继承
文章目录1、多重继承MixIn小结2、python中多重继承1、多重继承继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。回忆一下Animal类层次的设计,假设我们要实现以下4种动物:Dog - 狗狗;Bat - 蝙蝠;Parrot - 鹦鹉;Ostrich - 鸵鸟。如果按照哺乳动物和鸟类归类,我们可以设计出这样的类的层次: ...原创 2020-02-27 14:35:46 · 225 阅读 · 0 评论 -
【Python进阶】4-2 多态 | 什么是多态 / 静态语言vs动态语言 / python中多态
文章目录1、什么是多态“开闭”原则2、静态语言 vs 动态语言小结3、python中多态1、什么是多态要理解什么是多态,我们首先要对数据类型再作一点说明。当我们定义一个class的时候,我们实际上就定义了一种数据类型。我们定义的数据类型和Python自带的数据类型,比如str、list、dict没什么两样:a = list() # a是list类型b = Animal() # b是Anim...原创 2020-02-27 13:54:27 · 363 阅读 · 0 评论 -
【Python进阶】4-1 继承 | 继承定义 / 继承一个类 / 判断类型isinstance()
文章目录1、什么是继承继承有什么好处?2、Python中继承一个类3、python中判断类型1、什么是继承在OOP程序设计中,[ 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。]当我们定义一个class的时候,可以从某个现有的class继...原创 2020-02-27 11:14:16 · 309 阅读 · 0 评论 -
【Python进阶】3-5 定义类方法
文章目录1、python中定义类方法1、python中定义类方法和属性类似,方法也分实例方法和类方法。在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。要在class中定义类方法,需要这么写:class Person(object): count = 0 @classmethod def how_many(cls): ...转载 2020-02-27 10:23:17 · 145 阅读 · 0 评论 -
【Python进阶】3-4 定义实例方法 / 方法也是属性
文章目录1、python中定义实例方法2、python中方法也是属性1、python中定义实例方法一个实例的私有属性就是以__开头的属性,无法被外部访问,那这些属性定义有什么用?虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通...原创 2020-02-25 16:42:34 · 189 阅读 · 0 评论 -
【Python进阶】3-3 创建类属性 / 类属性和实例属性名字冲突问题
文章目录1、创建类属性2、类属性和实例属性名字冲突问题1、创建类属性类是模板,而实例则是根据类创建的对象。绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。定义类属性可以直接在 class 中定义:class Pe...原创 2020-02-25 16:30:50 · 426 阅读 · 0 评论 -
【Python进阶】3-2 访问限制
我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办?Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子:class Person(object): def __init__(self, name): self.name = name self._title = 'Mr...原创 2020-02-25 14:28:43 · 109 阅读 · 0 评论 -
【Python进阶】2-2 安装第三方模块
文章目录安装第三方模块Anaconda安装常用模块模块搜索路径安装第三方模块在Python中,安装第三方模块,是通过包管理工具pip完成的。如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了。如果你正在使用Windows,请参考安装Python一节的内容,确保安装时勾选了pip和Add python.exe to Path。在命令提示符窗口下尝试运行pip,如果Wind...原创 2020-02-25 13:56:04 · 219 阅读 · 0 评论 -
【Python进阶】2-1 使用模块 | 导入模块 / 动态导入模块 / 使用__future__ / 作用域说明
文章目录1、导入模块2、动态导入模块3、使用__future__4、作用域1、导入模块要使用一个模块,我们必须首先导入该模块。Python使用import语句导入一个模块。例如,导入系统自带的模块 math:import math你可以认为math就是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数、变量和类:>>> math.p...原创 2020-02-25 13:43:28 · 509 阅读 · 0 评论 -
【Python进阶】3-1 类和实例 | 定义类并创建实例 / 创建实例属性 / 初始化实例属性
文章目录1、定义类并创建实例2、创建实例属性3、初始化实例属性1、定义类并创建实例在Python中,类通过 class 关键字定义。以 Person 为例,定义一个Person类如下: class Person(object): pass按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。类的继承将在后面的章节讲解,现在我...原创 2020-02-25 10:51:16 · 961 阅读 · 0 评论 -
【Python进阶】1-5 偏函数
python中偏函数当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。比如,int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换:>>> int('12345')12345但int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做 N 进制的转换:>>...原创 2020-02-25 09:58:01 · 188 阅读 · 0 评论 -
【python进阶】1-4 decorator装饰器 | 编写无参数decorator / 编写带参数decorator / 完善decorator
文章目录1、python中编写无参数decorator装饰器python内置的@语法就会使为了简化装饰器调用装饰器的作用:可以极大地简化代码,避免每个函数编写重复性代码打印日志:@log检测性能:@performance数据库事务:@transactionURL路由:@post(’/register’)1、python中编写无参数decoratorPython的 decorat...原创 2020-02-25 09:21:32 · 274 阅读 · 0 评论 -
【Python进阶】1-3 匿名函数
python中匿名函数高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算 f(x)=x2 时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])[1, ...原创 2020-02-10 19:51:28 · 139 阅读 · 0 评论 -
【Python进阶】1-2 返回函数 | 函数作为返回值 、闭包
文章目录1、函数作为返回值2、闭包1、函数作为返回值Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数!例如,定义一个函数 f(),我们让它返回一个函数 g,可以这样写:def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' ...原创 2020-02-09 16:05:15 · 258 阅读 · 0 评论 -
【Python进阶】1-1 高阶函数 | map() / reduce() / filter() / sorted()
文章目录1、高阶函数基本概念2、高阶函数之map()函数3、高阶函数之reduce()函数4、高阶函数之filter()函数5、高阶函数之sorted()函数——排序算法1、高阶函数基本概念变量可以指向函数函数名其实就是指向函数的变量高阶函数:能接收函数做参数的函数变量可以指向函数函数的参数可以接收变量一个函数可以接收另一个函数作为参数能接收函数作参数的函数就是高阶函数明确高...原创 2020-02-07 16:17:15 · 161 阅读 · 0 评论