美文网首页
python学习日记6-迭代器与单例模式

python学习日记6-迭代器与单例模式

作者: livein80 | 来源:发表于2024-01-01 19:17 被阅读0次

    迭代器

    ++++++++++++++++++++++++++++

    1.迭代

    • 迭代:就是在一些元素中获取元素的过程或者是一种方式
    • 迭代器:它可以使用next() 方法获取遍历对象的元素,并且能记住遍历对象的位置,从遍历对象的一个元素开始访问,直到所有的元素被访问结束,而且只能向前不能向后的
    • 可迭代:可迭代对象有: 1.生成器,2.列表 元组,字符串,字典,集合...
    # 判断对象是否为可迭代
    a = [1,2,3,4] #列表
    b = (1,2,3,4) #元组
    c = {'a':1,'b':2} #字典
    s = 'abcd'  # 字符串
    n = 123     # 数字
    
    #第一种方法:
    from collections.abc import Iterable
    print(isinstance(a,Iterable))  #  输出:True
    print(isinstance(b,Iterable)) #  输出:True
    print(isinstance(c,Iterable)) #  输出:True
    print(isinstance(s,Iterable)) #  输出:True
    print(isinstance(n,Iterable)) #  输出:False
    
    #第二种方法: 强制转化为迭代器,报错为不可迭代
    print(iter(a)) #输出: <list_iterator object at 0x10b163fd0>
    print(iter(n)) #输出:TypeError: 'int' object is not iterable
    
    

    2.单例模式

    class Person():
        _instance = None
        def __new__(cls, *args, **kwargs):
            if Person._instance is None:
                print('new')
                Person._instance = super().__new__(cls, *args, **kwargs)
            return Person._instance
        def __init__(self):
            print('init')
    
    
    p1 = Person()
    p2 = Person()
    #  new ,init ,init
    
    print(id(p1),id(p2))
    # 4442047632 4442047632 4442047632
    

    相关文章

      网友评论

          本文标题:python学习日记6-迭代器与单例模式

          本文链接:https://www.haomeiwen.com/subject/pfsundtx.html