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
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容