亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python反射操作對象屬性方法詳解

 更新時間:2023年08月08日 10:09:02   作者:灰勒塔德  
這篇文章主要介紹了Python反射操作對象屬性方法詳解,在Python面對對象中,通過字符串的形式去操作對象的屬性方法就稱之為反射(在Python中一切事物都是可以為對象),需要的朋友可以參考下

前言:

  眾所周知,每一個實例化對象都是有實例化屬性或者方法的,之前我們對實例化對象進(jìn)行屬性方法查詢、刪除或者添加都是直接去通過對象名.屬性 去操作的

所以今天我來講其他方法去操作實例化對象的屬性方法,看正文:

反射

在Python面對對象中,通過字符串的形式去操作對象的屬性方法就稱之為反射(在Python中一切事物都是可以為對象)

對象反射這里提供了以下幾個內(nèi)置字符串函數(shù):

  • getattr 獲取指定對象的屬性以及方法
  • setattr 設(shè)置對象屬性
  • hasattr 判斷對象是否有這個屬性以及方法
  • delattr 刪除對象屬性

下面進(jìn)行一一細(xì)講

1.getattr() 函數(shù)

 格式:

變量名 = getattr(對象, 對象屬性, 默認(rèn)值)

作用:

獲取指定對象的屬性以及方法,然后返回這個屬性或者方法

示例:

class A(object):
    def __init__(self,name):
        self.name=name
    def fun(self):
        print(f'我是{self.name}')
user=A('Jack')
print(user.name) #輸出 Jack
b=getattr(user,'name')
a=getattr(user,'age',18) #注意注意?。?!
print(user.age)#報錯的
c=getattr(user,'fun')
print(b,a)
c()
print(user.__dict__)
#輸出結(jié)果:
# Jack 18
# 我是Jack
# {'name': 'Jack'}

注意看,這里我a=getattr(user,'age',18),其中age不是這個實例化對象的屬性,只是我通過這個函數(shù)把18這個數(shù)字賦值給了c,實際上user和age并沒有參與這個賦值,因為user與age一定關(guān)系都沒有。下面通過__dict__就很明顯看出來

2.setattr() 函數(shù)

格式:

setattr(對象, "對象屬性", 值)

作用:

添加設(shè)置對象屬性

示例:

#給對象添加屬性
class A(object):
    def __init__(self,name):
        self.name=name
    def fun(self):
        print(f'我是{self.name}')
user=A('Jack')
#之前的做法:直接添加
user.age=18
print(user.age)
#通過字符串操作
setattr(user,'num','137***55***')
print(user.name,user.num)
print(user.__dict__)
#輸出結(jié)果:
# 18
# Jack 137***55***
# {'name': 'Jack', 'age': 18, 'num': '137***55***'}

3.hasattr() 函數(shù)

格式:

變量 = hasattr(對象, "對象屬性")

作用:

判斷對象是否有這個屬性以及方法 ,返回布爾類型

示例:

class A(object):
    def __init__(self,name):
        self.name=name
    def fun(self):
        print(f'我是{self.name}')
user=A('Jack')
print(hasattr(user,'age')) #False
print(hasattr(user,'name')) #True
print(hasattr(user,'fun')) #True

4.delattr() 函數(shù)

格式:

delattr(對象, 對象屬性)

作用:

刪除對象屬性或者方法

示例:

class A(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def fun(self):
        print(f'我是{self.name}')
user=A('Jack',18)#{'name': 'Jack', 'age': 18}
print(user.__dict__)
delattr(user,'age') 
#等效于 del user.age
print(user.__dict__)#{'name': 'Jack'}

可以看出,實例化對象user中的age屬性被刪除了

當(dāng)然,這四個函數(shù)不單單可以在實例化對象使用,Python一切皆對象,所以一個模塊,一個函數(shù)都是可以去使用的,這里就不多說了。

到此這篇關(guān)于Python反射操作對象屬性方法詳解的文章就介紹到這了,更多相關(guān)Python反射操作對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3解析庫BeautifulSoup4的安裝配置與基本用法

    python3解析庫BeautifulSoup4的安裝配置與基本用法

    簡單來說,BeautifulSoup就是Python的一個HTML或XML的解析庫,我們可以用它來方便地從網(wǎng)頁中提取數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python3解析庫BeautifulSoup4的安裝配置與基本用法的相關(guān)資料,需要的朋友可以參考下
    2018-06-06
  • Python中表格插件Tabulate的用法小結(jié)

    Python中表格插件Tabulate的用法小結(jié)

    這篇文章主要介紹了Python中表格插件Tabulate的用法,Tabulate插件是一個功能強(qiáng)大、簡單易用的數(shù)據(jù)可視化工具,它能夠滿足我們在Python中進(jìn)行表格數(shù)據(jù)展示的各種需求,通過使用Tabulate插件,我們能夠輕松地生成美觀且易讀的表格,需要的朋友可以參考下
    2023-11-11
  • Python淺析多態(tài)與鴨子類型使用實例

    Python淺析多態(tài)與鴨子類型使用實例

    python是一門解釋語言,但是同java等靜態(tài)語言一樣,是可以通過繼承的方式實現(xiàn)多態(tài)。而且python還有一個自己的特殊實現(xiàn)多態(tài)的方法,就是通過鴨子類型,來實現(xiàn)多態(tài)
    2022-10-10
  • Numpy中arange()的用法及說明

    Numpy中arange()的用法及說明

    Numpy的arange()函數(shù)用于在指定間隔內(nèi)生成均勻間隔的數(shù)組,它接受開始值、停止值和步長來創(chuàng)建數(shù)組,返回的是ndarray類型,如果沒有提供dtype,則會根據(jù)其他參數(shù)推斷數(shù)據(jù)類型,對于浮點類型參數(shù),結(jié)果數(shù)組的長度計算方式為ceil((stop-start)/step)
    2024-10-10
  • 跟老齊學(xué)Python之有容乃大的list(1)

    跟老齊學(xué)Python之有容乃大的list(1)

    這一講中的list類型,也是python的一種數(shù)據(jù)類型。翻譯為:列表。LIST在python中具有非常強(qiáng)大的功能。
    2014-09-09
  • python導(dǎo)出requirements.txt的幾種方法總結(jié)

    python導(dǎo)出requirements.txt的幾種方法總結(jié)

    這篇文章主要介紹了python導(dǎo)出requirements.txt的幾種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python3實現(xiàn)發(fā)送QQ郵件功能(附件)

    Python3實現(xiàn)發(fā)送QQ郵件功能(附件)

    這篇文章主要為大家詳細(xì)介紹了Python3實現(xiàn)發(fā)送QQ郵件功能,附件方面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Pandas實現(xiàn)(pivot_table函數(shù))數(shù)據(jù)透視表方式

    Pandas實現(xiàn)(pivot_table函數(shù))數(shù)據(jù)透視表方式

    pandas的pivot_table()函數(shù)非常強(qiáng)大,主要用于創(chuàng)建數(shù)據(jù)透視表,重要參數(shù)包括index、values、columns和aggfunc,index用于設(shè)置行索引,類似于SQL中的group by,values用于進(jìn)行聚合計算的數(shù)據(jù)選擇,columns參數(shù)可設(shè)置列層次,非必須
    2024-09-09
  • python中@property和property函數(shù)常見使用方法示例

    python中@property和property函數(shù)常見使用方法示例

    這篇文章主要介紹了python中@property和property函數(shù)常見使用方法,結(jié)合實例形式分析了Python @property和property函數(shù)功能、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-10-10
  • 如何在Python 游戲中模擬引力

    如何在Python 游戲中模擬引力

    這篇文章主要介紹了在你的 Python 游戲中模擬引力的操作方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03

最新評論