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

迭代器

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

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容