刚开始学python,途中几个关键字反复搞不清楚,记录下来,方便日后查阅,同时也是自己学习的证明。基本上都是网上的方法,只是简单的把基本知识记下来了,如果需要深入的同学请移步搜索引擎。
with...as...
- 示例:
with语句后必须要有__enter__和__exit__方法
class contrllled_execution: def __enter__(self): set things up return thing def __exit__(self, type, value, tracback): tear things down with controlled_execution() as thing: do something
- 解释:
1.当with这一行开始执行时,会调用__enter__函数,然后把return的结果传给as后的变量
2.执行dosomething
3.无论该语句是否出现异常,最后执行__exit()__函数
yield
- 可迭代对象
1.mylist是一个可迭代对象,当你使用一个列表来建立另外一个列表时,就建立了一个可迭代对象
2.可迭代对象所有的值都存储在内存中,不适合大量数据的操作。
mylist = [x*x for x in range(3)] for i in mylist: print(i)
- 生成器
1.可迭代
2.只能读取一次
3.存储位置不全存在内存中
mygenerator = (x*x for in range(3)) for i in mygenerator: print(i)
- yield
1.yield类似于return 返回的是一个生成器
2.当你调用该函数时,仅仅返回一个生成器对象,并不执行函数代码
3.当你使用for迭代,代码执行
4.我的理解:封装生成器
def createGenerator(): mylist = range(3) for i in mylist: yield i*i mygenerator = createGenerator() # 创建一个生成器对象 print(mygenerator)
range()函数
返回一个整数序列的对象
if __name__ == '__main__'
刚开始看python代码时,最疑惑的应该就是这句了。理解了才发现这个设定是非常好的。
1.main函数的入口。
2.如果直接运行这个.py文件,if __name == '__main__' 为True运行这个代码块的内容。
3.如果另一个.py文件导入此.py文件,if __name == '__main__' 为Flase。
4.方便调试代码,在该语句下写调试代码,本.py文件可调试,外部模块调用不可见。
ps:欢迎指正,日后遇到其它的也会继续更新...