• 异常处理
  • 面向对象
  • 迭代器和生成器

python异常处理

  • 下面代码触发了一个FileNotFoundError
>>> open("notexist.txt")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'notexist.txt'
  • 抛出异常
>>> raise FileNotFoundError
  • 异常类型

  • 捕获异常使用try,except,finally,else
try:
open(r"c:\Users\kingsoft\Desktop\notexist.txt")
except FileNotFoundError as e:
print ("file not exist...")
except (name1,name2):
print ("io error is true...")
else:
print ("file exist..")
finally:
print ("always do...")

  

python面向对象

python是完全面向对象的,python中一切都是对象,包括变量,函数等。

  • 定义一个对象
class MyException():
pass
  • self 和init方法
class Person():

	def __init__(self, name):
self.name = name def sayname(self):
print self.name m = Person("joe")
print(m.sayname())
  • 区分类和类的实例
class Person():
def __init__(self, name):
self.name = name
Person.name = name
def sayname(self):
print("myname is :" + self.name)
print("myexceptionname is: " + Person.name)
def changeothername(self, name):
Person.name = name
def __del__(self):
print(self.name + "is gone")
m = Person("joe")
m.sayname()
print("m.name : " + m.name)
m.test="tt"
print(m.test)
j = Person("jason")
j.sayname()
j.changeothername(j.name)
m.sayname()
  • 类的继承,多态和封装概念

生成器和迭代器

  • _iter_方法返回迭代器,迭代器指有next方法的对象
class Fibs(object):
"""docstring for Fibs"""
def __init__(self, max):
self.max = max
self.a = 0
self.b = 1
def __next__(self):
fib = self.a
if fib > self.max:
raise StopIteration
self.a, self.b = self.b, self.a + self.b
return fib
#返回迭代器
def __iter__(self):
return self
fib = Fibs(1000)
for f in fib:
print(f, end= " ")
  • 可迭代对象Iterable和迭代器Iterator
  • 生成器,生成器通过yield语句快速生成迭代器,让函数变成一个生成器
#斐波那契数列
def getfibs(max):
a = 0
b = 1
while a < max:
a, b= b, a+b
value = a
yield value print(getfibs(1000))
for i in getfibs(1000):
print(i)
  • 简单理解生成器
def gen():
yield "hello"
yield "how"
yield "are"
yield "you"
for i in gen():
print(i)

  

python基础--异常,对象和迭代器的更多相关文章

  1. python基础-异常(exception)处理

    python基础-异常(exception)处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 程序中难免出现错误,而错误分成两种,即语法错误和逻辑错误.语法错误根本过不了pyth ...

  2. Python可迭代对象、迭代器和生成器

    Python可迭代对象.迭代器和生成器 python 函数 表达式 序列 count utf-8 云栖征文 python可迭代对象 python迭代器 python生成器 摘要: 8.1 可迭代对象( ...

  3. python基础——获取对象信息

    python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...

  4. python基础15上_迭代器_生成器

    # 迭代器和生成器 # 迭代器: # 双下方法 : 很少直接调用的方法.一般情况下,是通过其他语法触发的 # 可迭代的 —— 可迭代协议 含有__iter__的方法('__iter__' in dir ...

  5. Day12 Python基础之生成器、迭代器(高级函数)(十)

    https://www.cnblogs.com/yuanchenqi/articles/5769491.html 1. 列表生成式 我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7 ...

  6. Python基础(7)——迭代器&生成器

    1.列表生成式 [i*2 for i in range(10)] [fun(i) for i in range(10)] 2.生成器 # Author Qian Chenglong #列表生成器 a= ...

  7. python 可迭代对象与迭代器

    生成器函数的工作原理只要 Python 函数的定义体中有 yield 关键字, 该函数就是生成器函数. 调用生成器函数时, 会返回一个生成器对象. 也就是说, 生成器函数是生成器工厂. 调用生成器函数 ...

  8. Py修行路 python基础 (十一)迭代器 与 生成器

    一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中就是 ...

  9. Python -- 可迭代对象和迭代器

    5.9 可迭代对象 可迭代对象: str , list , tuple , set , dict , range 1.在Python中,但凡内部有__iter__方法的对象,都是可迭代对象 2.查看对 ...

  10. (转)python基础学习-----生成器和迭代器

    在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了 ...

随机推荐

  1. 《InsideUE4》UObject(五)类型系统信息收集

    在一起!在一起! 引言 前文中我们阐述了类型系统构建的第一个阶段:生成.UHT分析源码的宏标记并生成了包含程序元信息的代码,继而编译进程序,在程序启动的时候,开始启动类型系统的后续构建阶段.而本文我们 ...

  2. HTTP协议(二)

    一.请求的格式: (一).请求行 (1).请求方法 1.GET 2.POST 3.PUT 4.DELETE 5.TRACE 6.OPTIONS (2).请求路径 (3).所用的协议 (二).请求头信息 ...

  3. HTML的语义化,你需要深入了解

    有关HTML的一些基础课程,很多网站都有讲,于我而言,真正实践起来,我只要求我能够让它表现出我所想要的结果即可.然而,这种要求,对于后期的维护与测试,真的是......想起日前我们所做的这个项目,那里 ...

  4. 搭建 redis 3.2.8服务器

    实验环境 redis 3.2.8 + RHEL 7.3 系统 软件下载地址 http://download.redis.io/releases/redis-3.2.8.tar.gz #注意,我的软件包 ...

  5. RDCの自我介绍

    ........................................... 大家好,这里是RUSH_D_CAT.一只ACMer,19岁的少年,From SDU,大二. Q: 1950499 ...

  6. ng自带的表单验证

    几点注意:使用ng的表单验证,需要给form,input,textarea一个name 要求:验证输入框的内容(长度,正则,必填,),当验证不通过的时候,就禁用提交按钮 使用的验证:ng-maxlen ...

  7. 接口测试培训:HTTP协议基础

    接口测试培训:HTTP协议基础   引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展. ...

  8. ArcGIS API for JavaScript 4.2学习笔记[20] 使用参数查询要素(油井和地震关系)

    这个例子相当复杂.我先简单说说这个例子是干啥的. 在UI上,提供了一个下拉框.两个滑动杆,以确定三个参数,使用这三个参数进行空间查询.这个例子就颇带空间查询的意思了. 这个例子是干嘛的呢?第一个参数是 ...

  9. Oracle的基本学习(二)—基本查询

    一.基本查询语句 (1)查看当前用户 show user;   (2)查看当前用户下的表 select * from tab;   (3)查看员工表的结构 desc emp;   (4)选择全部列 S ...

  10. java 基础知识五 数组

    java  基础知识五  数组 数组保存的是一组有顺序的.具有相同类型的数据. 同一个数组中所有数据元素的数据类型都是相同的. 可以通过数组下标来访问数组,数据元素根据下标的顺序,在内存中按顺序存放 ...