困扰Python新手的关键字和一些函数

刚开始学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:欢迎指正,日后遇到其它的也会继续更新...


猜你喜欢

转载自blog.csdn.net/sinat_38617018/article/details/79953340