欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何遍歷python中的對象屬性

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

遍歷python中的對象屬性

python開發(fā)中有時候需要遍歷某對象的屬性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
"""

迭代器自定義遍歷對象

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

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

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

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

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

<!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>
        //聲明一個數(shù)組
        const xiyou = ['唐僧','孫悟空','豬八戒','沙僧'];
 
        //使用 for...of 遍歷數(shù)組
        // for(let v of xiyou){
        //     console.log(v);
        // }
 
        let iterator = xiyou[Symbol.iterator]();
 
        //調用對象的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ù)組,直接得到值的遍歷。也可以使用迭代器的方式進行遍歷。

迭代器自定義遍歷對象遍歷對象中的某一個屬性?

舉例:使用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>
        //聲明一個對象
        const banji = {
            name: "終極一班",
            stus: [
                'xiaoming',
                'xiaoning',
                'xiaotian',
                'knight'
            ],
            [Symbol.iterator]() {
                //索引變量
                let index = 0;
                //保存外面的this對象
                let _this = this;
                return {
                    next: function () {
                        if (index < _this.stus.length) {
                            const result = { value: _this.stus[index], done: false };
                            //下標自增
                            index++;
                            //返回結果
                            return result;
                        }else{
                            return {value: undefined, done: true};
                        }
                    }
                };
            }
        }
 
        //遍歷這個對象 
        for (let v of banji) {
            console.log(v);
        }
    </script>
</body>
 
</html>

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

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python文件打包工具一站式指南

    Python文件打包工具一站式指南

    這篇文章主要為大家介紹了Python文件打包工具一站式指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Python PyQt5模塊實現(xiàn)一個瀏覽器的示例代碼

    Python PyQt5模塊實現(xiàn)一個瀏覽器的示例代碼

    在項目開發(fā)中,有的應用程序可以運行在web瀏覽器,本文主要介紹了Python PyQt5模塊實現(xiàn)一個瀏覽器的示例代碼,分享給大家,感興趣的可以了解一下
    2021-07-07
  • 簡單了解python代碼優(yōu)化小技巧

    簡單了解python代碼優(yōu)化小技巧

    這篇文章主要介紹了簡單了解python代碼優(yōu)化小技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值
    2019-07-07
  • python生成隨機mac地址的方法

    python生成隨機mac地址的方法

    這篇文章主要介紹了python生成隨機mac地址的方法,涉及Python操作隨機字符串的技巧,需要的朋友可以參考下
    2015-03-03
  • python實現(xiàn)一組典型數(shù)據(jù)格式轉換

    python實現(xiàn)一組典型數(shù)據(jù)格式轉換

    這篇文章主要為大家詳細介紹了python實現(xiàn)一組典型數(shù)據(jù)格式轉換,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • python如何基于redis實現(xiàn)ip代理池

    python如何基于redis實現(xiàn)ip代理池

    這篇文章主要介紹了python如何基于redis實現(xiàn)ip代理池,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Python wxPython創(chuàng)建文件復制工具

    Python wxPython創(chuàng)建文件復制工具

    wxPython是一個功能強大的 GUI 框架,它允許開發(fā)者通過 Python 輕松構建跨平臺的桌面應用,本文將使用wxPython創(chuàng)建一個文件復制工具,感興趣的可以了解下
    2025-02-02
  • Python 實現(xiàn)微信自動回復的方法

    Python 實現(xiàn)微信自動回復的方法

    這篇文章主要介紹了Python 實現(xiàn)微信自動回復的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • python pandas dataframe 按列或者按行合并的方法

    python pandas dataframe 按列或者按行合并的方法

    下面小編就為大家分享一篇python pandas dataframe 按列或者按行合并的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python實現(xiàn)圖像處理ORB算法

    Python實現(xiàn)圖像處理ORB算法

    ORB(Oriented FAST and Rotated BRIEF)算法是一種高效的特征檢測和描述符,它在圖像匹配中有廣泛的應用,下面我們就來了解一下ORB算法的原理與實現(xiàn)吧
    2023-12-12

最新評論