在?Python?中如何為對象添加屬性
我們將介紹如何在 Python 中為對象添加屬性。 我們還將通過示例介紹如何在 Python 中更改對象的屬性。
在 Python 中為對象添加屬性
在 Python 中,我們時常使用對象,因為 Python 是一種面向對象的語言。 對象使我們的代碼可重用并易于實現(xiàn)復雜的結構。
對象的主要部分是它們的屬性。 屬性定義某個對象的屬性是什么。
在處理對象時,可能有很多情況我們需要在程序中間向對象添加新屬性。
Python 提供了一個函數(shù) setattr()
可以方便地設置一個對象的新屬性。 這個函數(shù)甚至可以替換屬性的值。
它是一個函數(shù),借助它我們可以分配對象屬性的值。
該方法將為我們提供多種方法,通過某些構造函數(shù)和對象函數(shù)為變量分配值。 通過使用這個功能,我們也將能夠有其他替代的方式來賦值。
現(xiàn)在,讓我們討論一下這個 setattr()
函數(shù)的結構。 構造 setattr()
的結構如下所示。
# python setattr(object, name, value)
從這個函數(shù)的語法中可以看出,我們將三個參數(shù)傳遞給函數(shù),然后它將允許我們設置對象的屬性。
共有三個參數(shù),說明如下:
- object- 我們將傳遞我們創(chuàng)建的對象的名稱,并希望為其設置屬性。
- name- 這將是我們要為其分配值的對象的屬性名稱。
- value- 我們將在此處傳遞屬性值。
讓我們來看一個例子,在這個例子中我們將創(chuàng)建一個學生班級。 我們將創(chuàng)建一個新學生并為其分配一些屬性,如下所示。
# 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)
輸出:
從上面的示例中可以看出,設置我們創(chuàng)建的對象的屬性非常容易。 現(xiàn)在,讓我們討論一個不同的場景。
假設我們有一個新對象并且想要設置類中缺少的屬性。
在某些情況下,沒有屬性,或者所有屬性都不是在一個類中創(chuàng)建的。 發(fā)生這種情況時,我們分配一個新屬性并可以為其設置一個值。
但要實現(xiàn)它,對象應該實現(xiàn) __dict__()
方法。 讓我們通過一個例子,嘗試為一個不存在的屬性賦值。
我們將使用上面的示例并嘗試分配一個新屬性 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)建不存在的新屬性并為其賦值。
到此這篇關于在 Python 中如何為對象添加屬性的文章就介紹到這了,更多相關Python 對象添加屬性內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)實時數(shù)據(jù)采集新型冠狀病毒數(shù)據(jù)實例
在本篇文章里小編給大家整理了關于Python實現(xiàn)實時數(shù)據(jù)采集新型冠狀病毒數(shù)據(jù)實例內容,有需要的朋友們可以學習參考下。2020-02-02使用python實現(xiàn)無需驗證碼免登錄12306搶票功能
隨著科技的發(fā)展,越來越多的人選擇通過網(wǎng)絡購買火車票,而12306作為中國鐵路客戶服務中心的官方網(wǎng)站,成為了人們購票的首選平臺,然而,在春運、暑運等高峰期,由于車票緊張,搶票成為了一項具有挑戰(zhàn)性的任務,下面,我們將詳細介紹如何使用python實現(xiàn)無需驗證碼免登錄12306搶票2025-01-01Python光學仿真從Maxwell方程組到波動方程矢量算法理解學習
這篇文章主要為大家介紹了Python光學仿真從Maxwell方程組到波動方程算法的理解學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10