python学习日记6-迭代器与单例模式
2024-01-01 本文已影响0人
livein80
迭代器
++++++++++++++++++++++++++++
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