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

Python反射操作對(duì)象屬性方法詳解

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

前言:

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

所以今天我來(lái)講其他方法去操作實(shí)例化對(duì)象的屬性方法,看正文:

反射

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

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

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

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

1.getattr() 函數(shù)

 格式:

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

作用:

獲取指定對(duì)象的屬性以及方法,然后返回這個(gè)屬性或者方法

示例:

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)#報(bào)錯(cuò)的
c=getattr(user,'fun')
print(b,a)
c()
print(user.__dict__)
#輸出結(jié)果:
# Jack 18
# 我是Jack
# {'name': 'Jack'}

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

2.setattr() 函數(shù)

格式:

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

作用:

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

示例:

#給對(duì)象添加屬性
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)
#通過(guò)字符串操作
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(對(duì)象, "對(duì)象屬性")

作用:

判斷對(duì)象是否有這個(gè)屬性以及方法 ,返回布爾類(lèi)型

示例:

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(對(duì)象, 對(duì)象屬性)

作用:

刪除對(duì)象屬性或者方法

示例:

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'}

可以看出,實(shí)例化對(duì)象user中的age屬性被刪除了

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

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

相關(guān)文章

  • Python程序運(yùn)行原理圖文解析

    Python程序運(yùn)行原理圖文解析

    這篇文章主要介紹了Python程序運(yùn)行原理圖文解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 教你利用python的matplotlib(pyplot)繪制折線(xiàn)圖和柱狀圖

    教你利用python的matplotlib(pyplot)繪制折線(xiàn)圖和柱狀圖

    Python繪圖需要下載安裝matplotlib模塊,它是一個(gè)數(shù)學(xué)繪圖庫(kù),我們將使用它來(lái)制作簡(jiǎn)單的圖表,如折線(xiàn)圖和散點(diǎn)圖,下面這篇文章主要給大家介紹了關(guān)于利用python的matplotlib(pyplot)繪制折線(xiàn)圖和柱狀圖的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • python manim實(shí)現(xiàn)排序算法動(dòng)畫(huà)示例

    python manim實(shí)現(xiàn)排序算法動(dòng)畫(huà)示例

    這篇文章主要為大家介紹了python manim實(shí)現(xiàn)排序算法動(dòng)畫(huà)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Python接口自動(dòng)化測(cè)試的實(shí)現(xiàn)

    Python接口自動(dòng)化測(cè)試的實(shí)現(xiàn)

    這篇文章主要介紹了Python接口自動(dòng)化測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python Mysql數(shù)據(jù)庫(kù)操作 Perl操作Mysql數(shù)據(jù)庫(kù)

    Python Mysql數(shù)據(jù)庫(kù)操作 Perl操作Mysql數(shù)據(jù)庫(kù)

    python對(duì)mysql數(shù)據(jù)庫(kù)的一些操作實(shí)現(xiàn)代碼
    2009-01-01
  • Python基礎(chǔ)之pandas數(shù)據(jù)合并

    Python基礎(chǔ)之pandas數(shù)據(jù)合并

    這篇文章主要介紹了Python基礎(chǔ)之pandas數(shù)據(jù)合并,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 使用python實(shí)現(xiàn)抓取騰訊視頻所有電影的爬蟲(chóng)

    使用python實(shí)現(xiàn)抓取騰訊視頻所有電影的爬蟲(chóng)

    這篇文章主要介紹了使用python實(shí)現(xiàn)抓取騰訊視頻所有電影的爬蟲(chóng),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • python 制作一個(gè)gui界面的翻譯工具

    python 制作一個(gè)gui界面的翻譯工具

    圖形界面總是比命令行的程序更加好用,也更容易給新手使用,今天就來(lái)介紹如何使用python制作一個(gè)圖形界面的翻譯工具
    2021-05-05
  • keras中的loss、optimizer、metrics用法

    keras中的loss、optimizer、metrics用法

    這篇文章主要介紹了keras中的loss、optimizer、metrics用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python支持同時(shí)存在多個(gè)版本的操作步驟

    python支持同時(shí)存在多個(gè)版本的操作步驟

    這篇文章主要介紹了python支持同時(shí)存在多個(gè)版本的操作步驟,在已有Python 3.8的情況下,安裝新的Python 3.9版本,感興趣的小伙伴可以參考文中步驟,文章中介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03

最新評(píng)論

琼结县| 新昌县| 台前县| 清河县| 肇源县| 方城县| 龙岩市| 阜新市| 屏边| 大名县| 乌什县| 思南县| 随州市| 平阳县| 河间市| 壤塘县| 汶上县| 丰城市| 杂多县| 方城县| 武安市| 邵东县| 门头沟区| 米脂县| 芦溪县| 武山县| 广水市| 阿合奇县| 浏阳市| 华池县| 镇原县| 东辽县| 梅州市| 威海市| 洮南市| 炉霍县| 都兰县| 应用必备| 鄱阳县| 衡山县| 贺州市|