首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python异常报错详解

) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError...序列没有此索引(index) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError...如果 str()或者unicode()是在这个类的一个实例上被调用,返回实例的参数表示形式,或者当没有参数,返回空字符串。 args 给异常构造函数的元组元组。...异常AttributeError 属性引用(请参阅属性引用)或赋值失败引发。(当一个对象根本不支持属性引用或属性赋值,会TypeError被提出。)...异常EOFError 当其中一个内置函数(input()或raw_input())在没有读取任何数据的情况下触发文件结束条件(EOF)引发。

4.6K20

pickle源码大宝典-ForMe

,为00的时候压入的是False BININT = b'J' #后面的输入读取4个字节并且使用unpack通过'<i'的格式将4字节的buffer数据解包转为int类型,后面不能换行...PERSID = b'P' #读取当前行到行末尾,将读取到的数据作为id,通过persistent_load函数获得obj对象返回后将obj对象压栈,默认情况没用,要重写persistent_load...True NEWFALSE = b'\x89' #向栈压入一个False LONG1 = b'\x8a' #先读取一个字节,以该字节16进制数为大小size,后面的数据读取...PERSID = b'P' #读取当前行到行末尾,将读取到的数据作为id,通过persistent_load函数获得obj对象返回后将obj对象压栈,默认情况没用,要重写persistent_load...True NEWFALSE = b'\x89' #向栈压入一个False LONG1 = b'\x8a' #先读取一个字节,以该字节16进制数为大小size,后面的数据读取

783130
您找到你想要的搜索结果了吗?
是的
没有找到

定制类和黑魔法

> AttributeError: 'Spring' object attribute 'tree' is read-only >>> Spring.tree = 'huyang' # 可通过类名修改类属性...__slots__是什么:是一个类属性变量,变量值可以是列表、元组或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性)。     ...大多数情况下,应该只在那些经常被使用到的用作数据结构的类上定义__slots__,     比如在程序需要创建某个类的几百万个实例对象 。     ...当类同时定义了__getattribute__(self, name)和__getattr__(self, name),而__getattribute__(self, name)没有抛出AttributeError...同样的,对象通过键的方式操作属性,也会触发上面的三种方法。需要注意的是,字符串和元组只能取出其元素,不等删除和修改元素,所以字符串和元组只有__getitem__方法。

44610

提高代码效率的6个Python内存优化技巧

但是其实有许多方法可以显著优化Python程序的内存使用,这些方法可能在实际应用没有人注意,所以本文将重点介绍Python的内置机制,掌握它们将大大提高Python编程技能。...Generators 生成器是Python列表的惰性求值版本。每当调用next()方法生成一个项,而不是一次计算所有项。所以它们在处理大型数据非常节省内存。...因为在某些情况下,使用一种数据类型比使用另一种数据类型更节省内存。 1、元组比列表更节省内存 元组是不可变的(在创建后不能更改),它允许Python在内存分配方面进行优化。...2、数组比列表更节省内存 Python的数组要求元素具有相同的数据类型(例如,所有整数或所有浮点数),但列表可以存储不同类型的对象,这不可避免地需要更多的内存。...由于c和d的长度为4097,因此它们是内存的两个对象而不是一个对象,不再隐式驻留字符串。所以当执行c = d,我们得到一个False。 驻留是一种优化内存使用的强大技术。

17210

学习笔记-小甲鱼Python3学习第十三

元组的元素不能被修改。...,只是没有变量引用它,一段时间以后原来的元组存储区域就会被python回收 元组跟数组不同,不能使用pop(),remove()方法删除其中的元素,不过可以使用del删除整个元组(用法少,一般不会明显删除整个元组...肯定不是,这是赋值操作,是对x,y,z分别赋值 所有的多对象的、逗号分隔的、没有明确用符号定义的这些集合默认的类型都是元组。...6.请写出以下情景应该使用列表还是元组来保存数据:  1) 游戏中角色的属性:列表 2) 你的×××信息:元组  3) 论坛的会员:列表  4) 团队合作开发程序,传递给一个你并不了解具体实现的函数的参数...:元组  5) 航天火箭各个组件的具体配置参数:元组  6) NASA系统记录已经发现的行星数据:列表

49410

Python复习 一

元组更新与删除 更新: 元组和列表的功能除了数据改变以外几乎一致,一个元组数据是不可以改变的,但元组元组之间是可以拼接的 >>> tup (1, 2, 3) >>> tup = tup[:3] +...,以便其他操作使用该文件对象 单参数:可以是文件的具体路径和文件名(如果只是文件名会索引当前目录) 操作符:决定文件的打开模式(默认为只读 ”r“) 操作函数 close():关闭文件 read():读取字符...read(size=-1):文件读取size指定的字符内容大小;未赋值表示读取全部内容并作为String返回 readline():读取一行字符串 write():向文件输出内容 writelines...异常 Exception: 所有异常的基类(可以接收任何类的异常) AssertionError:assert语句失败(assert条件不成立) AttributeError:访问一个对象没有属性对象属性不存在...:变量名前两个下划线“__” 继承 class 类名(被继承的类): self:只可以使用自己的类对象 super:可以从子类调用父类属性对象 Python支持多重继承,即一个类继承多个父类;

1.2K20

第十四章的补充

classinfo可以是类对象组成的元组,只要class是其中任何一个候选类的子类,则返回TRUE 其他情况会抛出一个TypeError的异常 >>> class A: ......TRUE否则返回FLASE; 如果object是第二个classinfo子类的一个实例对象也返回TRUE 如果第一个参数不是对象,那么永远返回false classinfo可以是类对象或者类组成的元组,...则返回true 如果第二个参数,不是类或实例对象组成的元组,则会抛出一个TypeError 异常 >>> issubclass(B,A) True >>> b1 = B() >>> isinstance...第一个参数(object)是对象,第二个参数(name)是属性名 >>> class C: ......object has no attribute 'y' >>> setattr(object,name,value) 与getattr()对应,setattr()可以设置指定属性,如果没有则会创建一个新的属性并赋值

42520

Python学习笔记整理(七)Pytho

1、元组属性 *任意对象的有序集合 与字符串和列表类似,元组是一个位置有序的对象集合。与列表相同,可以嵌入任何类别的对象到其中,可以嵌套元组,列表,字典。...注意:文件读取数据回到脚本是一个字符串,所以如果字符串不是需要的类型。就得将其转换成其他类型的Python对象。同样。...将数据写入文件,Python会自动把对象转换为字符串--必须传递一个已经格式化的字符串、。...Python高级标准工具,处理一般对象存储(如pickle模块),处理文件打包的二进制数据(如struct模块) 3、在文件存储并解析python对象 >>> X,Y,Z=43,44,45 >...除此之外Python也把任意的空数据结构视为假,把任何非空数据结构视为真、 更一般地,真和假的概念是Python每个对象的固有属性。每个对象不是真就是假。

88530

Python编程常见问题与解答

11.问:在我的代码x是一个列表,我使用y=x.sort()语句把它排序后的结果赋值给y,然后使用y.index(3)查看3在y的下标,为什么会提示“AttributeError: 'NoneType...答:在Python元组和字符串这样的容器类对象是不可变的,不支持其中元素的增加、修改和删除操作。...答:应该是文件具有“只读”之类的特殊属性,或者当前登录的用户账号没有权限访问该文件。 24.问:我机器上明明是有test.txt这个文件的,为什么使用内置函数open()打开提示文件不存在呢?...25.问:“资源管理器”来看,我当前文件夹明明有test.txt文件,但是使用内置函数open()打开还是提示文件不存在,可能是哪里错了呢?...元组和字符串也使用同样的方式比较大小。 33.问:程序中有个map对象,第一次使用是正常的,但是再使用时好像里面就没有元素了,这是怎么回事呢?

3.4K10

【十三】python面向对象之类和对象

4、抽象类 如果说类是从一堆对象抽取相同的内容而来的,那么抽象类就是从一堆类抽取相同的内容而来的,内容包括数据属性和函数属性。...设计角度去看,如果类是现实对象抽象而来的,那么抽象类就是基于类抽象而来的。...从实现角度来看,抽象类与普通类的不同之处在于:抽象类只能有抽象方法(没有实现功能),该类不能被实例化,只能被继承,且子类必须实现抽象方法。...): #子类继承抽象类,但是必须定义read和write方法 def read(self): print('硬盘数据读取方法') def...6、类名称空间 创建一个类就会创建一个类的名称空间,用来存储类定义的所有名字,这些名字称为类的属性 而类的良好总属性数据属性和函数属性 其中类的数据属性是共享给所有对象 1 2 print(

28240

爆肝 50 道 Python 面试题 (下)

在Python读取文件可以先通过open函数获取文件对象,在读取文件,可以通过read方法的size参数指定读取的大小,也可以通过seek方法的offset参数指定读取的位置,这样就可以控制单次读取数据的字节数和总字节数...1 2 扩展:如果不希望代码运行时动态的给对象添加新属性,可以在定义类使用__slots__魔法。...在使用面向对象编程语言的时候,定义类是最常见的一件事情,有的时候,我们会用到只有属性没有方法的类,这种类的对象通常只用于组织数据,并不能接收消息,所以我们把这种类称为数据类或者退化的类,就像C语言中的结构体那样...,一旦将数据存储在namedtuple的顶层属性数据就不能再修改了,也就意味着对象上的所有属性都遵循“一次写入,多次读取”的原则。...和普通元组不同的是,命名元组数据有访问名称,可以通过名称而不是索引来获取保存的数据,不仅在操作上更加简单,代码的可读性也会更好。 命名元组的本质就是一个类,所以它还可以作为父类创建子类。

58720

Python编程常见出错信息及原因分析(2)

这种错误一般是因为记错了对象属性或方法,也可能是前面某段代码代码修改了变量x的类型,自己却忘记了。...在Python,如果函数或方法没有返回值,则认为其返回控制None。不过,这种错误又比较明显,因为一般是'NoneType' object has no attribute.........一般并不会发生这样的错误,因为作为Python程序员我们肯定知道元组和字符串是不可变的容易对象,是不允许修改其中元素值的,也不允许删除其中的元素。...遇到这种错误时,一般是调用了其他函数或方法而不知道该函数或方法返回的是元组或字符串或其他不可变容易对象,应仔细检查出现错误的代码之前的函数或方法调用代码。...切片连续没有这个限制。

3.3K70

沙盒逃逸看Python黑科技(下篇)

如果大家想回顾上文,可以点下面的链接: 沙盒逃逸看Python黑科技(上篇) 一.回顾 理理思路 在上一篇文章,我总结了Python沙箱逃逸这道CTF题涉及的主要知识点 ,其中上篇讲解了其中两个...Python 如何导包 Python 如何执行代码和命令 Python 文件读取 内置模块 对象创建与引用 二.Python 文件读取 实践出真知 本节主要介绍Python文件读取,为什么要介绍这个呢...dir内置函数可以列出一个模块/类/对象下面所有的属性和函数,查看一下__builtins__的函数: >> dir(__builtins__)[['ArithmeticError', 'AssertionError...本质上是每个模块/类/对象/ 有一个__dict__ 字段,通过遍历 __dict__ 得到里面包含的属性和函数。 例如,我们可以引用__import__ 来导入os,并执行命令: ?...对象创建与引用 在上一节,不知道大家有没有注意到 我说的一句话: 上文沙箱将__builtins__的所有函数引用都删除 删除的是只是函数引用,而不是函数本身,如果你们熟悉C语言的话,函数引用可以理解为函数指针

1.3K30

看完这篇文章我知道至少85%的人是没有入门Python的!花两周整理

使用的话,除了没有修改元组元素的方法外,其他的和列表的方法基本一致。...输出结果: 6) 字典(dict)和列表,元组通过下标序列来索引元素不同,字典使用键值对的形式来存储数据,通过键来索引值,创建字典,键不能重复,重复后面的会覆盖!...AssertionError断言语句失败AttributeError尝试访问未知的对象属性IndexError索引超出序列的范围keyError字典查找一个不存在的KeyNameError尝试访问一个不存在的变量...close()关闭文件,关闭后文件不能再进行读写操作read(size=-1)文件读取指定的字节数,如果未设置或为负数,读取所有next()返回文件下一行readline()读取整行,包括换行符' '...,否则返回Falsehasattr(object, name)测试一个对象是否有指定的属性属性名要用引号括着!

1.4K70

Python正则表达式

当使用正则表达式,一对圆括号可以实现以下任意一个(或者两个)功能: 对正则表达式进行分组; 匹配子组 常见的正则表达式属性 函数/方法 描述 仅仅是re模块 compile 使用任何可选的标记来编译正则表达式的模式...如果匹配成功,就返回匹配对象;如果失败,就返回None search 使用可标记搜索字符串第一次出现的正则表达式。...num的特定子组 groups 返回一个包含所有匹配子组的元祖(没有成功,返回空元组) groupdict 返回一个包含所有匹配的命名子组的字典,所有的子组名称作为字典的键 常用的模块属性 re.I...group()要么返回整个匹配对象,要么根据要求返回特定子组。groups()则仅返回一个包含唯一或者全部子组的元组。...如果没有子组的要求,那么当group()仍然返回整个匹配,groups()返回一个空元组。 使用match()方法匹配字符串   match()函数试图字符串的起始部分对模式进行匹配。

1.6K90

Python 元组和集合的特点及常用操作

一、元组的特点: 1、有序的集合 2、通过偏移来取数据 3、属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。...,表面上是修改成功了 >>> a (5, 2, 3) 思考:元组不能改变,那为什么有列表,还要有元组呢?...元组一般当成参数传递给方法,而不是传递列表,元组不可变的好处,保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,确保方法或者接口不会改变我们的数据从而导致程序问题。 #!..." return a #不会修改列表的值 a = [1,2,3] print "start-" print id(a) info(a) print a 二、集合:集合是没有顺序的概念。...内置方法set(),接收可迭代的对象,如果对象有__iter__ 属性,就是可以迭代的对象,如字符串、列表、元组 1、创建集合。

88720

6.python内置函数

参数 filename:代码文件名称,如果不是文件读取代码则传递一些可辨认的值。当传入了source参数,filename参数传入空字符即可。   4....当source包含流程语句,mode应指定为‘exec’;当source只包含一个简单的求值表达式,mode应指定为‘eval’;当source包含了交互式命令语句,mode应指定为'single...18. float()  讲一个字符串或整数转换为浮点数 >>> print(float(1)) 1.0 19.list()  参数为可迭代对象 20.tuple() 元组 21.dict()   创建数据字典...22.set()  集合 23.frozenset()   不可变集合 24.dir()  不带参数返回当前范围内的变量,方法和定义的类型列表,带参数返回参数的属性,方法列表 >>> dir()...,逐一循环迭代器的元素,将返回值为True的元素留下,形成一个filter类型数据 30.format()  格式化输出字符串,format(value, format_spec)实质上是调用了value

73360

以往的Python文章总结

close() 关闭文件 read(size = -1) 文件读取size这个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回。...readline() 文件读取一整行字符串 write(str) 将字符串str写入文件 writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串可迭代的对象。...>>> a.read() '' >>> 读到文章末尾 读取前5个字符文,件指针 >>> a.read(5) ' 一、 情' tell返回当前在文件的位置 >>> a.tell() 9 >>> 读取一行...特性应用或赋值引发(试图访问一个对象没有属性) IOError 试图打开不存在的文件或者无全新的文件等操作,就会引发(输入输入异常,基本是无法打开文件...,但在Python没有用类似的关键词来修饰,所以本章到这里就结束了,告辞 默认上的对象属性和方法都是公开的,就像衣不隐体的美少女那样,可以通过(.)来访问。

1.3K30
领券