最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何遍歷python中的對(duì)象屬性

 更新時(shí)間:2023年11月10日 11:15:31   作者:Rnan-prince  
這篇文章主要介紹了如何遍歷python中的對(duì)象屬性問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

遍歷python中的對(duì)象屬性

python開發(fā)中有時(shí)候需要遍歷某對(duì)象的屬性list

class Person(object):
    """
    職員信息
    """
    name = 0
    age = 1
    id = 2
    group = 3
 
 
attr = [a for a in dir(Person) if not a.startswith('__')]
for a in attr:
    print(a, getattr(Person, a))
 
"""
age 1
group 3
id 2
name 0
"""

迭代器自定義遍歷對(duì)象

要說起迭代器自定義遍歷對(duì)象,首頁要知道什么是迭代器?

生成器 概念在Java,Python等語言中都是具備的,ES6也添加到了JavaScript中。Iterator可以使我們不需要初始化集合,以及索引的變量,而是使用迭代器對(duì)象的 next 方法,返回集合的下一項(xiàng)的值,偏向程序化

迭代器 是帶有特殊接口的對(duì)象。含有一個(gè)next()方法,調(diào)用返回一個(gè)包含兩個(gè)屬性的對(duì)象,分別是value和done,value表示當(dāng)前位置的值,done表示是否迭代完,當(dāng)為true的時(shí)候,調(diào)用next就無效了。

ES5中遍歷集合通常都是 for循環(huán),數(shù)組還有 forEach 方法,對(duì)象就是 for-in,ES6 中又添加了 MapSet,而迭代器可以統(tǒng)一處理所有集合數(shù)據(jù)的方法。迭代器是一個(gè)接口,只要你這個(gè)數(shù)據(jù)結(jié)構(gòu)暴露了一個(gè)iterator的接口,那就可以完成迭代。

ES6創(chuàng)造了一種新的遍歷命令for...of循環(huán),Iterator接口主要供for...of消費(fèi)。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>迭代器</title>
</head>
<body>
    <script>
        //聲明一個(gè)數(shù)組
        const xiyou = ['唐僧','孫悟空','豬八戒','沙僧'];
 
        //使用 for...of 遍歷數(shù)組
        // for(let v of xiyou){
        //     console.log(v);
        // }
 
        let iterator = xiyou[Symbol.iterator]();
 
        //調(diào)用對(duì)象的next方法
        console.log(iterator.next());
        console.log(iterator.next());
        console.log(iterator.next());
        console.log(iterator.next());
        console.log(iterator.next());
    </script>
</body>
</html>

如上所示,可以使用 for...of 遍歷數(shù)組,直接得到值的遍歷。也可以使用迭代器的方式進(jìn)行遍歷。

迭代器自定義遍歷對(duì)象遍歷對(duì)象中的某一個(gè)屬性?

舉例:使用for..of遍歷banji中stus數(shù)組?

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>自定義遍歷數(shù)據(jù)</title>
</head>
 
<body>
    <script>
        //聲明一個(gè)對(duì)象
        const banji = {
            name: "終極一班",
            stus: [
                'xiaoming',
                'xiaoning',
                'xiaotian',
                'knight'
            ],
            [Symbol.iterator]() {
                //索引變量
                let index = 0;
                //保存外面的this對(duì)象
                let _this = this;
                return {
                    next: function () {
                        if (index < _this.stus.length) {
                            const result = { value: _this.stus[index], done: false };
                            //下標(biāo)自增
                            index++;
                            //返回結(jié)果
                            return result;
                        }else{
                            return {value: undefined, done: true};
                        }
                    }
                };
            }
        }
 
        //遍歷這個(gè)對(duì)象 
        for (let v of banji) {
            console.log(v);
        }
    </script>
</body>
 
</html>

如上所示,我們使用自定義的一個(gè)[Symbol.iterator](){ }函數(shù),在內(nèi)部完成一個(gè)迭代器的操作,然后在外部通過for..of遍歷,即可實(shí)現(xiàn)效果;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python如何循環(huán)遍歷Numpy中的Array

    詳解Python如何循環(huán)遍歷Numpy中的Array

    Numpy是Python中常見的數(shù)據(jù)處理庫,是數(shù)據(jù)科學(xué)中經(jīng)常使用的庫。在本文中,我們將學(xué)習(xí)如何迭代遍歷訪問矩陣中的元素,需要的可以參考一下
    2022-04-04
  • python文件處理筆記之文本文件

    python文件處理筆記之文本文件

    相信大家在測(cè)試任務(wù)過程中都或多或少遇到自己處理文本文件的情況,這篇文章主要給大家介紹了關(guān)于python文件處理筆記之文本文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • Python JSON編碼/解碼庫orjson的用法詳解

    Python JSON編碼/解碼庫orjson的用法詳解

    orjson是一個(gè)高性能的JSON編碼/解碼庫,專為Python設(shè)計(jì),使用Rust實(shí)現(xiàn),相比標(biāo)準(zhǔn)庫的json模塊和其他第三方庫(如 ujson、simplejson),orjson在速度上有顯著優(yōu)勢(shì),同時(shí)支持更豐富的原生數(shù)據(jù)類型,本文通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2025-07-07
  • python 實(shí)現(xiàn)logging動(dòng)態(tài)變更輸出日志文件名

    python 實(shí)現(xiàn)logging動(dòng)態(tài)變更輸出日志文件名

    這篇文章主要介紹了python 實(shí)現(xiàn)logging動(dòng)態(tài)變更輸出日志文件名的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python日志采集代碼詳解

    Python日志采集代碼詳解

    這篇文章主要介紹了Python日志采集,在實(shí)際使用python做自動(dòng)化測(cè)試過程中兩種解決思路都可以使用,且都挺方便,其中對(duì)于思路1,還可以將代碼進(jìn)行更進(jìn)一步的封裝,需要的朋友可以參考下
    2022-05-05
  • Python實(shí)現(xiàn)嵌套列表及字典并按某一元素去重復(fù)功能示例

    Python實(shí)現(xiàn)嵌套列表及字典并按某一元素去重復(fù)功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)嵌套列表及字典并按某一元素去重復(fù)功能,涉及Python列表嵌套列表、列表嵌套字典,及按照某一元素去重復(fù)的相關(guān)操作方法,需要的朋友可以參考下
    2017-11-11
  • Python實(shí)現(xiàn)Harbor私有鏡像倉庫垃圾自動(dòng)化清理詳情

    Python實(shí)現(xiàn)Harbor私有鏡像倉庫垃圾自動(dòng)化清理詳情

    這篇文章主要介紹了Python實(shí)現(xiàn)Harbor私有鏡像倉庫垃圾自動(dòng)化清理詳情,文章圍繞主題分享相關(guān)詳細(xì)代碼,需要的小伙伴可以參考一下
    2022-05-05
  • urllib2自定義opener詳解

    urllib2自定義opener詳解

    這篇文章主要介紹了urllib2自定義opener詳解,需要的朋友可以參考下
    2014-02-02
  • python django model聯(lián)合主鍵的例子

    python django model聯(lián)合主鍵的例子

    今天小編就為大家分享一篇python django model聯(lián)合主鍵的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python?迭代器和生成器概念及場景分析

    Python?迭代器和生成器概念及場景分析

    yield 是 Python 中實(shí)現(xiàn)惰性計(jì)算和協(xié)程的核心工具,結(jié)合 send()、throw()、close() 等方法,能夠構(gòu)建高效、靈活的數(shù)據(jù)流和控制流模型,這篇文章主要介紹了Python?迭代器和生成器概念,需要的朋友可以參考下
    2025-04-04

最新評(píng)論

浦城县| 沿河| 民权县| 平果县| 白水县| 涟水县| 类乌齐县| 当阳市| 镇沅| 延吉市| 陕西省| 阿瓦提县| 平潭县| 田林县| 吉水县| 和平区| 罗平县| 木里| 柞水县| 盐城市| 霸州市| 博白县| 邓州市| 海盐县| 滦南县| 株洲县| 红桥区| 荥经县| 百色市| 商都县| 信阳市| 屏东县| 郎溪县| 轮台县| 平潭县| 德江县| 巴彦县| 独山县| 博湖县| 玉田县| 临江市|