在?Python?中如何為對象添加屬性
我們將介紹如何在 Python 中為對象添加屬性。 我們還將通過示例介紹如何在 Python 中更改對象的屬性。
在 Python 中為對象添加屬性
在 Python 中,我們時(shí)常使用對象,因?yàn)?Python 是一種面向?qū)ο蟮恼Z言。 對象使我們的代碼可重用并易于實(shí)現(xiàn)復(fù)雜的結(jié)構(gòu)。
對象的主要部分是它們的屬性。 屬性定義某個(gè)對象的屬性是什么。
在處理對象時(shí),可能有很多情況我們需要在程序中間向?qū)ο筇砑有聦傩浴?/p>
Python 提供了一個(gè)函數(shù) setattr()
可以方便地設(shè)置一個(gè)對象的新屬性。 這個(gè)函數(shù)甚至可以替換屬性的值。
它是一個(gè)函數(shù),借助它我們可以分配對象屬性的值。
該方法將為我們提供多種方法,通過某些構(gòu)造函數(shù)和對象函數(shù)為變量分配值。 通過使用這個(gè)功能,我們也將能夠有其他替代的方式來賦值。
現(xiàn)在,讓我們討論一下這個(gè) setattr()
函數(shù)的結(jié)構(gòu)。 構(gòu)造 setattr()
的結(jié)構(gòu)如下所示。
# python setattr(object, name, value)
從這個(gè)函數(shù)的語法中可以看出,我們將三個(gè)參數(shù)傳遞給函數(shù),然后它將允許我們設(shè)置對象的屬性。
共有三個(gè)參數(shù),說明如下:
- object- 我們將傳遞我們創(chuàng)建的對象的名稱,并希望為其設(shè)置屬性。
- name- 這將是我們要為其分配值的對象的屬性名稱。
- value- 我們將在此處傳遞屬性值。
讓我們來看一個(gè)例子,在這個(gè)例子中我們將創(chuàng)建一個(gè)學(xué)生班級。 我們將創(chuàng)建一個(gè)新學(xué)生并為其分配一些屬性,如下所示。
# python class Students(): name = "Rana Hasnain" roll_no = "BC140402269" cgpa = 3.5 new_student = Students() setattr(new_student, 'name', 'James Bond') setattr(new_student, 'roll_no', '007') setattr(new_student, 'cgpa', 4) print("New Student Name:",new_student.name) print("New Student Roll #:",new_student.roll_no) print("New Student Cgpa:",new_student.cgpa)
輸出:
從上面的示例中可以看出,設(shè)置我們創(chuàng)建的對象的屬性非常容易。 現(xiàn)在,讓我們討論一個(gè)不同的場景。
假設(shè)我們有一個(gè)新對象并且想要設(shè)置類中缺少的屬性。
在某些情況下,沒有屬性,或者所有屬性都不是在一個(gè)類中創(chuàng)建的。 發(fā)生這種情況時(shí),我們分配一個(gè)新屬性并可以為其設(shè)置一個(gè)值。
但要實(shí)現(xiàn)它,對象應(yīng)該實(shí)現(xiàn) __dict__()
方法。 讓我們通過一個(gè)例子,嘗試為一個(gè)不存在的屬性賦值。
我們將使用上面的示例并嘗試分配一個(gè)新屬性 degree,如下所示。
# python class Students(): name = "Rana Hasnain" roll_no = "BC140402269" cgpa = 3.5 new_student = Students() setattr(new_student, 'name', 'James Bond') setattr(new_student, 'roll_no', '007') setattr(new_student, 'cgpa', 4) setattr(new_student, 'degree', 'BSCS') print("New Student Name:",new_student.name) print("New Student Roll #:",new_student.roll_no) print("New Student Cgpa:",new_student.cgpa) print("New Student Degree:",new_student.degree)
輸出:
從上面的例子可以看出,該函數(shù)還可以創(chuàng)建不存在的新屬性并為其賦值。
到此這篇關(guān)于在 Python 中如何為對象添加屬性的文章就介紹到這了,更多相關(guān)Python 對象添加屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中with語句結(jié)合上下文管理器操作詳解
這篇文章主要給大家介紹了關(guān)于python中with語句結(jié)合上下文管理器操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12python關(guān)鍵字and和or用法實(shí)例
這篇文章主要介紹了python關(guān)鍵字and和or用法實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-05-05Python實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集新型冠狀病毒數(shù)據(jù)實(shí)例
在本篇文章里小編給大家整理了關(guān)于Python實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集新型冠狀病毒數(shù)據(jù)實(shí)例內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2020-02-02使用python實(shí)現(xiàn)無需驗(yàn)證碼免登錄12306搶票功能
隨著科技的發(fā)展,越來越多的人選擇通過網(wǎng)絡(luò)購買火車票,而12306作為中國鐵路客戶服務(wù)中心的官方網(wǎng)站,成為了人們購票的首選平臺,然而,在春運(yùn)、暑運(yùn)等高峰期,由于車票緊張,搶票成為了一項(xiàng)具有挑戰(zhàn)性的任務(wù),下面,我們將詳細(xì)介紹如何使用python實(shí)現(xiàn)無需驗(yàn)證碼免登錄12306搶票2025-01-01Python光學(xué)仿真從Maxwell方程組到波動方程矢量算法理解學(xué)習(xí)
這篇文章主要為大家介紹了Python光學(xué)仿真從Maxwell方程組到波動方程算法的理解學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10Tensorflow自定義模型與訓(xùn)練超詳細(xì)講解
TensorFlow是基于數(shù)據(jù)流編程的符號數(shù)學(xué)系統(tǒng),廣泛用于機(jī)器學(xué)習(xí)算法的編程實(shí)現(xiàn),前身是谷歌的神經(jīng)網(wǎng)絡(luò)算法庫DistBelief,Tensorflow擁有多層級結(jié)構(gòu),可部署于各類服務(wù)器、PC終端和網(wǎng)頁并支持GPU和TPU高性能數(shù)值計(jì)算,被廣泛應(yīng)用于谷歌內(nèi)部的產(chǎn)品開發(fā)和各領(lǐng)域的科學(xué)研究2022-11-11