首页 > 代码库 > python基础--异常,对象和迭代器
python基础--异常,对象和迭代器
- 异常处理
- 面向对象
- 迭代器和生成器
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.namem = 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 selffib = 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 = http://www.mamicode.com/a>
- 简单理解生成器
def gen(): yield "hello" yield "how" yield "are" yield "you"for i in gen(): print(i)
python基础--异常,对象和迭代器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。