Fork me on GitHub

逆水行舟,不进则退

人与人之间最小的差距是智商,最大的差距是坚持。

12 2018 档案

摘要:组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 圆环是由两个圆组成的,圆环的面积是外面圆的面积减去内部圆的面积。圆环的周长是内部圆的周长加上外部圆的周长。这个时候,我们就首先实现一个圆形类,计算一个圆的周长和面积。然后在"环形类"中组合圆形的实例作为自己的属性来用 当类之间有显著 阅读全文
posted @ 2018-12-29 12:36 咕噜牛Gruffalo 阅读(209) 评论(0) 推荐(0)
摘要:继承 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 比如,我们已经编写了一个名为Animal的class,有一个run()方法 阅读全文
posted @ 2018-12-29 12:35 咕噜牛Gruffalo 阅读(236) 评论(0) 推荐(0)
摘要:什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 产看继承的方法: 提示:如果没有指定基类,python的类会默认继承object类,object是所有python类的 阅读全文
posted @ 2018-12-29 12:35 咕噜牛Gruffalo 阅读(145) 评论(0) 推荐(0)
摘要:递归函数 定义 递归的定义——在一个函数里再调用这个函数本身 递归的最大深度——997,即栈溢出。 使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归 阅读全文
posted @ 2018-12-29 12:35 咕噜牛Gruffalo 阅读(205) 评论(0) 推荐(0)
摘要:定义 测试工具 http://tool.chinaz.com/regex/ 字符组 [字符组]:这个位置只能出现一个字符。 [0123456789] [0-9] [abcde] [a-z] [A-Z] [0-9a-zA-Z] [A-z]#A的ASCII码小于a。 元字符 量词 常用匹配 . ^ $ 阅读全文
posted @ 2018-12-29 12:35 咕噜牛Gruffalo 阅读(235) 评论(0) 推荐(0)
摘要:模块概念 什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写 阅读全文
posted @ 2018-12-29 12:35 咕噜牛Gruffalo 阅读(244) 评论(0) 推荐(0)
摘要:什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到 阅读全文
posted @ 2018-12-29 12:35 咕噜牛Gruffalo 阅读(263) 评论(0) 推荐(0)
摘要:简述——包 包是一种通过使用‘.模块名’来组织python模块名称空间的方式。 注意: 1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警觉:这是关于包才有的导入语法 2. 包是目录级的(文件夹级),文件夹是用来组成py文 阅读全文
posted @ 2018-12-29 12:35 咕噜牛Gruffalo 阅读(192) 评论(0) 推荐(0)
摘要:异常和错误 错误 1.语法错误 这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误 什么是异常 即便Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。 异常就是程序运行时发生错误的信号,在python中,错误触发的异常 阅读全文
posted @ 2018-12-29 12:35 咕噜牛Gruffalo 阅读(213) 评论(0) 推荐(0)
摘要:__str__和__repr__ 改变对象的字符串显示__str__,__repr__ 我们先定义一个Student类,打印一个实例: 打印出一堆<__main__.Student object at 0x000002311102EE10>,不好看。 怎么才能打印得好看呢?只需要定义好__str__ 阅读全文
posted @ 2018-12-29 12:34 咕噜牛Gruffalo 阅读(178) 评论(0) 推荐(0)
摘要:反射 反射就是通过字符串的形式,导入模块;通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动! hasattr 判断对象中是否有这个方法或变量 getattr 获取对象中的方法或变量的内存地址 hasattr、g 阅读全文
posted @ 2018-12-29 12:34 咕噜牛Gruffalo 阅读(193) 评论(0) 推荐(0)
摘要:isinstance(obj,cls)检查是否obj是否是类 cls 的对象 issubclass(sub, super)检查sub类是否是 super 类的派生类 阅读全文
posted @ 2018-12-29 12:34 咕噜牛Gruffalo 阅读(114) 评论(0) 推荐(0)
摘要:classmethod 类方法在Python中使用比较少,类方法传入的第一个参数为cls,是类本身。并且,类方法可以通过类直接调用,或通过实例直接调用。但无论哪种调用方式,最左侧传入的参数一定是类本身。 通常情况下,类方法使用@classmethod装饰器来声明 当这个方法的操作只涉及静态属性的时候 阅读全文
posted @ 2018-12-29 12:34 咕噜牛Gruffalo 阅读(238) 评论(0) 推荐(0)
摘要:在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: 这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()方法里,就可以检查参数: 现 阅读全文
posted @ 2018-12-29 12:34 咕噜牛Gruffalo 阅读(141) 评论(0) 推荐(0)
摘要:在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性: 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Pyt 阅读全文
posted @ 2018-12-29 12:34 咕噜牛Gruffalo 阅读(133) 评论(0) 推荐(0)
摘要:面向对象编程的一个重要特点就是数据封装。在上面的Student类中,每个实例就拥有各自的name和score这些数据。我们可以通过函数来访问这些数据,比如打印一个学生的成绩: 但是,既然Student实例本身就拥有这些数据,要访问这些数据,就没有必要从外面的函数去访问,可以直接在Student类的内 阅读全文
posted @ 2018-12-29 12:34 咕噜牛Gruffalo 阅读(241) 评论(0) 推荐(0)
摘要:面向过程 VS 面向对象 面向过程 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好 阅读全文
posted @ 2018-12-29 12:33 咕噜牛Gruffalo 阅读(267) 评论(0) 推荐(0)
摘要:用map来处理字符串列表 用map来处理字符串列表,把列表中所有水果都变成juice,比方apple_juice fruits=['apple','orange','mango','watermelon'] 匿名函数实现: 用filter函数处理数字列表 用filter函数处理数字列表,将列表中所有 阅读全文
posted @ 2018-12-10 21:38 咕噜牛Gruffalo 阅读(840) 评论(0) 推荐(0)
摘要:目前所有内置函数 http://www.runoob.com/python3/python3-built-in-functions.html 内置函数分类 作用域相关globals()、locals() globals()——获取全局变量的字典 locals()——获取执行本方法所在命名空间内的局部 阅读全文
posted @ 2018-12-10 21:37 咕噜牛Gruffalo 阅读(235) 评论(0) 推荐(0)
摘要:剩余匿名函数 序列 序列——列表和元组相关的:list和tuple 序列——字符串相关的:str,format,bytes,bytearry,memoryview,ord,chr,ascii,repr format #字符串可以提供的参数,指定对齐方式,<是左对齐, >是右对齐,^是居中对齐 pri 阅读全文
posted @ 2018-12-10 21:37 咕噜牛Gruffalo 阅读(147) 评论(0) 推荐(0)
摘要:匿名函数 简介 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数。 python 使用 lambda 来创建匿名函数。 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。 1 lambda 只是一个表达式,函数体比 def 简单很多。 2 lambda的主体是一个表达式,而不是 阅读全文
posted @ 2018-12-10 21:37 咕噜牛Gruffalo 阅读(248) 评论(0) 推荐(0)
摘要:当想从一种编码方式转换为另一种编码方式时,执行的就是以上步骤。 在python3里面,默认编码方式是unicode,所以无需解码(decode),直接编码(encode)成你想要的编码方式就可以了。 pass 阅读全文
posted @ 2018-12-10 21:37 咕噜牛Gruffalo 阅读(216) 评论(0) 推荐(0)
摘要:登录注册(三次机会) 改变文件数据类型 # 1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数。 # apple 10 3 # tesla 100000 1 # mac 3000 2 # lenovo 30000 3 # chicken 10 3 # 通过代码,将其构建成这种数据类型:[ 阅读全文
posted @ 2018-12-03 21:56 咕噜牛Gruffalo 阅读(1349) 评论(0) 推荐(0)
摘要:迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 字符串,列表或元组对象都可用于创建迭代 阅读全文
posted @ 2018-12-03 21:34 咕噜牛Gruffalo 阅读(243) 评论(0) 推荐(0)
摘要:迭代器和生成器的概念 迭代器 对于list、string、tuple、dict等这些容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数。iter()是python内置函数。 iter()函数会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内的元 阅读全文
posted @ 2018-12-03 21:34 咕噜牛Gruffalo 阅读(337) 评论(0) 推荐(0)
摘要:如何返回被装饰函数的函数名及注释? 问题及实现 先看典型的装饰器: 由以上结果可以看出,返回的注释以及函数名是inner函数的,不是被装饰函数的。 如何解决呢? 我们只要导入相应模块中的一个方法,也是个装饰器(带有参数的装饰器),来装饰inner函数就可以了。 哒哒~ 一个小练习 编写装饰器,为多个 阅读全文
posted @ 2018-12-01 15:32 咕噜牛Gruffalo 阅读(227) 评论(0) 推荐(0)
摘要:楔子 前提,我有一段代码(一个函数)。 需求1:现在,我想计算这段代码的运行时间。 我可以这样做: 此时,需求是可以实现的。 需求2:不想如此麻烦 如果有很多个类似的函数需要计算运行时间,那这种方法就会显得特别繁琐。 我们可以不修改源代码,再定义一个计算时间的函数,将需要被计算时间的函数名作为参数传 阅读全文
posted @ 2018-12-01 15:30 咕噜牛Gruffalo 阅读(231) 评论(0) 推荐(0)