![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python基础
fayzoro
这个作者很懒,什么都没留下…
展开
-
迭代器(高级)
迭代器(高级)什么是迭代器 由iter(x)函数返回,可以通过next(it)函数取值的对象就是迭代器迭代器协议: 迭代器协议是指对象能够使用next()函数获取下一项数据,没有下一项数据时触发一个StopIteration异常来终止迭代的约定迭代器协议的实现方法: def next(self): ….注:此方法需要实现迭代器协议什么是可迭代对象: 是指能用it...翻译 2018-08-30 08:09:55 · 187 阅读 · 0 评论 -
python3中的字符串的索引和切片
索引index python字符串是不可以改变的序列,所有的序列都可以通过索引来获取其中的数据元素索引语法: 字符串[整数表达式]说明 1.序列的正向索引是从0开始的,第二个索引为1,最后一个索引为 len(s)-1 2.序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是 -len(s) 示例:s = 'abcde'>>&...原创 2018-08-25 16:04:16 · 4572 阅读 · 0 评论 -
函数(字符串函数)重写 overwrite
函数(字符串函数)重写 overwrite什么是而函数重写 在自定义的类内添加相应的方法,让自定义的类创建的实例能够使用內建函数进行操作对象转字符串函数repr(x) 返回一个能表示python对象的表达式字符串,通常 eval(repr(obj)) == obj 得到的是对象前后加上表示字符串的引号str(x) 通过给定的对象返回一个字符串(这个字符串通常供人阅读) 示例...翻译 2018-09-01 11:19:02 · 1013 阅读 · 0 评论 -
python 中自动化内存管理问题
python 中自动化内存管理问题: 使用赋值语句 a = 10000 b = 20000a = a + b # 发生了什么? c = a # 发生了什么?a = 10000 内存中创建一个10000对象,用变量a和10000绑定绑定b = 20000 内存中创建一个 20000对象,用变量b和20000对象绑a = a + b 计算对象a...原创 2018-08-25 14:32:49 · 494 阅读 · 0 评论 -
预置的实例属性和方法
预置的实例属性和方法__dict__ __class____dict__属性 __dict__属性绑定一个存储此实例自身变量的字典 实例的对象属性都在 __dict__ 的字典内,是一个个的键值对 键:值 属性名:属性值class Dog: passdog1 = Dog()print(dog1.__dict__) # {}dog1.color = '白...翻译 2018-08-29 08:07:11 · 350 阅读 · 0 评论 -
预置的类属性和方法
预置的类属性和方法__dict__ __doc__ __class__ __base__ * __dict__属性 __dict__属性绑定一个存储此实例自身变量的字典 实例的对象属性都在 dict 的字典内,是一个个的键值对 键:值 属性名:属性值class Dog: passprint(Dog.__dict__)# mappingproxy({'__we...翻译 2018-08-29 08:06:36 · 363 阅读 · 0 评论 -
类方法
类方法: @classmethod类方法: @classmethod * 类方法是用来描述类的行为的方法, 类方法属于类,不属于类的示例对象 * 说明: 类方法需要使用@classmethod 装饰器定义 类方法至少有一个形参,第一个形参用于绑定类,约定写为 ‘cls’ 类和该类的示例都可以调用类方法 类方法不能访问此类创建的对象的实例属性 示例1:class A: ...翻译 2018-08-29 08:05:06 · 267 阅读 · 0 评论 -
初始化方法 __init__()
初始化方法 init()作用: 对新创建的对象添加属性格式:class 类名(继承列表): def __init__(self, [形参列表]): 语句块注: []代表内容可以省略说明: 初始化方法名必须是’init’ 不可改变初始化方法会在构造函数创建实例后自动调用,且将实例自身通过第一个参数 self 传入 init 方法构造函数的实...翻译 2018-08-29 08:04:39 · 7941 阅读 · 1 评论 -
类的 __slots__ 列表
类的 slots 列表类的 slots 列表: * 作用: 限定一个类创建的实例只能有固定的属性(实例变量) 不允许对象添加列表之外的属性(实例变量) 防止用户因错写属性名而发生程序错误 * 说明: slots 属性绑定一个字符串列表 含有 slots 属性的类所创建的实例对象没有 dict 属性, 即此实例不用字典来存储对象的实例属性 * 示例见:class ...翻译 2018-08-29 08:04:19 · 312 阅读 · 0 评论 -
python3中的字符串的运算
字符串的运算:+ += * *= 加号运算符用于拼接字符串 字符串 + 字符串+= 用于拼接运算后改变原变量的绑定关系 等同于 x = x + ‘某某某’示例:x = "abcd" + "edf" print(x) # x = "abcdedf"x += &a原创 2018-08-25 15:52:26 · 1225 阅读 · 0 评论 -
布尔测试函数的重写
布尔测试函数的重写格式: def __bool__(self): ….作用:用于bool(boj)函数取值用于if 语句真值表达式中用于while语句的真值表达式中说明: 当自定义类内有__bool__(self) 方法时, 此方法的返回作为bool(x)的返回值当不存在__bool__(self)方法时,返回__len__(self)方法的返回值是否为非零来测试布尔...翻译 2018-08-30 08:04:08 · 469 阅读 · 0 评论 -
內建函数重写
內建函数重写 方法名 函数名 def __abs__(self): abs(obj) 函数调用 def __len__(self): len(obj) 函数调用 def __reversed__(self): reversed(obj) 函数调用示例:class Mylist(): '''这是一个自定义的列表类型,此...翻译 2018-08-30 08:09:17 · 167 阅读 · 0 评论 -
面向对象编程
面向对象编程三大特征: * 继承:(派生) *作用: 让子类可以拥有父类的全部方法和行为。 *优点: 多人合作开发,共有代码可以放到父类,提高代码的重用性(继承) 在软件的升级维护中,可以在不改变原有代码的基础上,添加新的功能(派生)封装:(enclosure) 封装是指隐藏类的实现细节,让使用者不关心这些细节 封装的据地是让使用者通过尽可能少的方法(或属...原创 2018-08-30 08:08:09 · 114 阅读 · 0 评论 -
多继承的MRO问题
多继承的 MRO问题Python3 类的 __mro__ 属性作用:用来记录类的方法查找顺序哪个对象调用方法,按照相应对象的__mro__属性顺序查找调用父类方法 示例class A: def go(self): print('A')class B(A): def go(self): print('B') su...翻译 2018-08-30 08:07:47 · 254 阅读 · 0 评论 -
多继承 multiple inheritance
多继承 multiple inheritance多继承是指一个子类继承自两个或两个以上的基类 * 语法: class 类名(基类名,基类名2, …): pass * 说明: 一个子类同时继承自多个父类,父类中的方法可以同时被继承下来 如果两个父类中有同名的方法,而在子类中又没有覆盖此方法,调用结果难以确定示例见:class Car...翻译 2018-08-30 08:07:10 · 1027 阅读 · 0 评论 -
对象的属性管理函数
对象的属性管理函数getattr(obj, name[, default]) 从一个对象用字符串name得到对象的属性, getattr(x,’y’) 等同于 x.y; 当属性不存在时,如果给定default参数则返回default,如果没有给出default则触发一个AttributeError错误hasattr(obj, name) 用给定的name 字符串返回obj对否由此...翻译 2018-08-30 08:06:47 · 253 阅读 · 0 评论 -
多态polymorphic
多态 polymorphic字面意思: ‘多种状态’ 多态是指 在 有 继承/派生关系的类中,调用基类对象的方法,实际能调用子类的覆盖方法的现象 * 状态: 静态: (编译时状态) 动态: (运行时状态) * 说明: 多态调用的方法与对象相关,不与类型相关 Python全部对象都只有“运行时状态(动态)”,没有“C++”语言里的编译时状态(静态)示例:class ...翻译 2018-08-30 08:06:24 · 192 阅读 · 0 评论 -
issubclass 函数
issubclass 函数issubclass(cls, class_or_tuple) 判断一个类是否继承自其他的类,如果此类cls 是class 或 tuple中的一个派生子类则返回True, 否则返回False 示例:class A: passclass B(A): passclass C(B): passprint(issubclass(...翻译 2018-08-30 08:05:34 · 383 阅读 · 0 评论 -
封装 enclosure
封装 enclosure封装是指隐藏类的实现细节,让使用者不关心这些细节 封装的据地是让使用者通过尽可能少的方法(或属性)操作对象 * 私有属性和方法 python3 类中,以双下划线(‘__’)为开头的,不以双下划线结尾的标识符为私有成员 私有成员只能使用该类的方法来进行访问和修改 * 以 __ 开头的属性为私有属性 * 以 __ 开头的方法为私有方法 * ...翻译 2018-08-30 08:05:10 · 648 阅读 · 0 评论 -
静态方法
静态方法:@staticmethod静态方法是定义在类的内部的函数,此函数的作用域是函数的内部 * 说明: 静态方法需要使用@staticmethod 装饰器定义 静态方法与普通函数定义相同, 不需要传入参数self实例参数和cls类参数 静态方法只能凭借该类或类创建的对象(实例)调用 静态方法不能访问类变量和实例变量 * 实质: 就是定义在类内的函数。类名.函数() 或 实例名...翻译 2018-08-29 08:03:57 · 2343 阅读 · 0 评论 -
继承 inheritance 和 派生 derived
继承 inheritance 和 派生 derived继承: 什么是继承派生: 1.继承是从已有的类中派生出新的类,新类具有原有类的数据属性和行为,并能扩展新的行为 2.派生类就是从一个已有的类中衍生出新的类,在新类的基础上添加新的属性和行为为什么继承派生: 继承的目的是延续旧类的功能 派生的目的是在旧类的就出上改变原有的功能名词: 基类(base class) / 超类 (...翻译 2018-08-29 08:03:31 · 371 阅读 · 0 评论 -
实例方法
实例方法(method)实例方法 * 语法:class 类名(继承列表): def 实例方法名(self, 形参名1,形参名2,....): '方法文档字符串' 语句块作用: 用于描述一个对象的行为,让此类型的全部对象都拥有相同的行为 *说明: 实例方法的是指是函数,是定义在类内的函数 实例方法至少有一个形参,第一个形参用来绑定调...翻译 2018-08-29 08:03:02 · 4805 阅读 · 0 评论 -
lambda 表达式
lambda 表达式作用: 创建一个匿名函数对象 同def类似,但不提供函数名语法: lambda [形参名1,形参名2,…..]: 表达式 示例:fx = lambda: print('helloworld')# helloworld# Nonemyadd = lambda x, y: x + y功能等同于:def myadd(x,y): re...原创 2018-08-27 21:25:01 · 102 阅读 · 0 评论 -
函数和返回值
函数 function什么是函数 函数是可以重复执行的语句块,可以重复的调用作用: 用于封装语句块,提高代码的重用性 定义用户级别的函数def语句: 语法:def 函数名([形参列表]): 语句块(代码块)[return 表达式]作用: 用语句块创建一个函数,并用函数名变量绑定这个函数语法说明: 函数名是变量,他用于绑定语句块函数有子集的名字空...原创 2018-08-26 12:03:45 · 1987 阅读 · 0 评论 -
列表的定义和简单运算
列表的定义: 列表是一种容器 列表是可以被改变的序列 列表是由一系列特定元素组成,元素与元素之间可能没有任何的关联关系,但他们之间有先后顺序关系创建空列表的字面值表达式:[] # 创建一个空列表L = [] # 变量L绑定一个空列表创建非空列表的字面值:[1, 2, 3, 4, 5] # 创建一个非空列表L = [1, 2, 3, 4, 5] ...原创 2018-08-26 11:37:46 · 3365 阅读 · 0 评论 -
布尔运算
运算符: not and or 布尔非操作 not 语法: not x作用: 对x进行布尔取非,如 not bool(x) 若x为True,则返回False 若x为False, 则返回True 示例:not True # 返回 Falsenot False # 返回 Turenot 200 > 100 # 返回False布...原创 2018-08-26 11:21:56 · 1556 阅读 · 3 评论 -
continue语句
作用: 用于循环语句(while,for )中,不再执行本次循环,continue之后的语句,重新开始一次新的循环 语法: continue说明: 在while语句中执行continue,将会直接跳转到while语句的真值表达式处重新判断循环条件在for语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次进行循环 示例见:for x in ran...原创 2018-08-26 11:09:26 · 1989 阅读 · 0 评论 -
break语句
问题: 循环的过程中,突然发生一个状况,不想继续循环了,怎样跳出循环(终止)? 循环次数不确定的时候,怎样跳出循环(终止)?作用: 用于循环语句(while,for 语句)中,用来终止当前循环语句的执行语法: break说明:当break语句执行后,此循环语句break之后的语句将不再执行break语句通常和if语句组合使用break语句终止循环时else子句的语句将不会...原创 2018-08-26 11:06:55 · 5827 阅读 · 0 评论 -
while语句的简单应用
作用: 根据一定条件,重复的执行一条语句或多条语句语法:while 真值表达式: 语句块1else: 语句块2说明: 先判断真值表达式, 为True或 False如果为True, 则执行语句块1,再回到第一步,继续判断如果为False, 则执行语句块2,然后结束此while的执行else子句部分可以省略(同if类似)注: 如果while的结束是通过...原创 2018-08-26 11:03:00 · 450 阅读 · 0 评论 -
python3中的转义字符
转义字符 用转义序列代表特殊字符 字符串字面值中用字符反斜杠 \ 后跟一些字符代表特殊的一个字符 转义字符表: \’ 代表一个单引号 \” 代表一个双引号 \n 代表一个换行符 \ 代表一个反斜杠 \r 返回光标至行首(从行首开始覆盖) \t 水平制表符 \f 换页 \v 垂直制表符 \b 倒退(倒退一个字符开始覆盖) \0 字符...原创 2018-08-26 10:46:26 · 2526 阅读 · 0 评论 -
python3函数的参数传递
python3函数的参数传递传递方式位置传参 (序列传参)关键字传参 (字典关键字传参)位置传参:实际参数(实参)的对应关系与形式参数(形参)的对应关系是接位置来依次对应的* 说明: 实际参数的个数必须与形式参数的个数相同 * 序列传参: 序列传参是指在函数调用过程中,用*将序列拆解后按位置进行传递的传参方式 * 说明: ...原创 2018-08-27 21:25:31 · 690 阅读 · 0 评论 -
函数的可重入性
函数的可重入性当一个函数的输入一定,则输出必然一定的函数称为可重入函数说明: 可重入函数内一定不会访问除局部变量意外的变量 输出的结果不会收到外界的影响。示例:# 可重入函数: def myadd(x, y): return x + y print(myadd(100, 200)) # 300# 不可重入函数: y = 100 def m...原创 2018-08-27 21:25:54 · 382 阅读 · 0 评论 -
实例属性
实例属性: attribute(也叫实例变量)实例属性 每个实例都可以有自己的变量用来保存对象自己的数据,称为实例变量(也叫属性) 语法: 实例.属性名 赋值规则同变量的赋值规则 首次为属性赋值,则创建此属性 再次为属性赋值,则改变此属性的绑定关系作用: 记录每个对象自身的数据示例见:# 此示例示意为对象添加示例变量(属性)及访问示例变量(实例属性)class ...翻译 2018-08-29 08:02:38 · 3737 阅读 · 0 评论 -
类的定义和创建
类 * 什么是类: 拥有相同属性和行为的对象分为一组,即为一个类 类是用来描述对象的工具,用类可以创建此类的对象(实例) * 类的创建: class语句: * 语法: class 类名(继承列表): ”’类文档字符串”’ 实例方法定义 类变量定义 类方法定义(@cl...翻译 2018-08-29 08:02:08 · 5051 阅读 · 0 评论 -
文字的编码和转换
文字的编码和转换文字的编码和转换 * ASCII编码: 查看ASCII编码表 $ man ascii # 仅 linux 可用 0-127 没有中文常用的ASCII编码: 字符 十进制 十六进制 ‘0’ 48 0x30 ‘1’ 49 0x31 ‘A’ 65 0x41 ‘a’ ...翻译 2018-08-27 21:30:32 · 2368 阅读 · 0 评论 -
装饰器
装饰器什么是装饰器: 装饰器是一个函数,主要作用是用来包装另一个函数或类 包装的目的是在不改变原函数(或类名)的情况下改变被包装对象的行为 对原函数增加一段代码,或者直接替换原函数。函数装饰器 是指装饰器是一个函数,传入的是一个函数,返回的是一个函数语法:def 装饰器函数名(参数): 语句块 return 函数对象@装饰器函数名<换行>...原创 2018-08-27 21:30:07 · 145 阅读 · 0 评论 -
全局变量和局部变量
全局变量和局部变量局部变量:定义在函数内部的变量称为局部变量(函数的形参也是局部变量)局部变量在函数调用时才能被创建,在函数调用后就会自动销毁全局变量:定义在函数外部,模块内部的变量成为全局变量全局变量所有函数都可以直接访问(但函数内部不能将其赋值)函数名也是全局变量说明: 1.局部变量只能在其被声明的函数内部访问,而全局变量可以在整个模块内部范围内访问 ...原创 2018-08-27 21:29:25 · 221 阅读 · 0 评论 -
函数形参
函数形参函数形参的定义方式:位置形参星号元组形参命名关键字形参双星字典形参位置形参: 语法:def 函数名(形参名1,形参名2,...): 语句块自己理解:按照位置顺序依次一对一接收的形参 * 星号元组形参 * 语法:def 函数名(*元组形参名): 语句块* 作用:收集多余的位置传参* 说明:元组形参名一般命名为...原创 2018-08-27 21:28:51 · 2625 阅读 · 0 评论 -
递归函数recursion
递归函数recursion递归函数是指:函数直接或间接调用自身 示例:# 函数直接调用自身def f(): f() f()print('递归完成')# 函数间接调用自己def fa(): fb()def fb(): fafa()print('递归完成')递归说明: 1 递归一定要控制递归的层数,当符合某一条...原创 2018-08-27 21:28:16 · 1505 阅读 · 0 评论 -
python3函数的四个作用域
python3的四个作用域作用域:是访问变量时查找变量名的范围 * python3的四个作用域: LEGB 作用域 英文解释 英文简写 局部作用域(函数内) Local(function) L 外部嵌套函数作用域 Enclosing function locals E 函数定义所在模块作用域 Global(module) ...原创 2018-08-27 21:26:33 · 1662 阅读 · 1 评论