迭代器
++++++++++++++++++++++++++++
1.迭代
- 迭代:就是在一些元素中獲取元素的過程或者是一種方式
- 迭代器:它可以使用next() 方法獲取遍歷對象的元素,并且能記住遍歷對象的位置灌灾,從遍歷對象的一個元素開始訪問蜒滩,直到所有的元素被訪問結(jié)束姥宝,而且只能向前不能向后的
- 可迭代:可迭代對象有: 1.生成器饲趋,2.列表 元組,字符串驱还,字典膊毁,集合...
# 判斷對象是否為可迭代
a = [1,2,3,4] #列表
b = (1,2,3,4) #元組
c = {'a':1,'b':2} #字典
s = 'abcd' # 字符串
n = 123 # 數(shù)字
#第一種方法:
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
#第二種方法: 強制轉(zhuǎn)化為迭代器,報錯為不可迭代
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