Python面向对象之定制对象独有特征
生活随笔
收集整理的這篇文章主要介紹了
Python面向对象之定制对象独有特征
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
類中定義的函數(shù)是類的函數(shù)屬性,類可以使用,但使用的就是一個普通的函數(shù)而已,意味著需要完全遵循函數(shù)的參數(shù)規(guī)則,該傳幾個值就傳幾個
一、引入
class OldboyStudent:school = 'oldboy'def choose_course(self):print('is choosing course')stu1 = OldboyStudent() stu2 = OldboyStudent() stu3 = OldboyStudent()- 對于上述的學生類,如果類的屬性改了,則其他對象的屬性也會隨之改變
二、定制對象獨有特征
print(stu1.__dict__) {} print(stu2.__dict__) {}- 對象本質(zhì)類似于類,也是一個名稱空間,但是對象的名稱空間存放對象獨有的名字,而類中存放的是對象們共有的名字。因此我們可以直接為對象單獨定制名字。
三、屬性查找
- 首先從自身查找,沒找到往類中找,類中沒有則會報錯。即對象的屬性查找順序為:自身–》類–》報錯
四、類定義階段定制屬性
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def init(obj, x, y, z):obj.name = xobj.age = yobj.gender = zinit(stu1, 'tank1', 181, 'male1') print(stu1.name, stu1.age, stu1.gender) tank1 181 male1 init(stu2, 'sean1', 191, 'female1') print(stu2.name, stu2.age, stu2.gender) sean1 191 female1- 使用上述方法雖然讓我們定制屬性更簡單,但是還是太麻煩了,如果可以在實例化對象的時候自動觸發(fā)定時屬性,那就更方便了,因此可以使用類的__init__方法。
- 通過上述現(xiàn)象可以發(fā)現(xiàn),調(diào)用類時發(fā)生兩件事:
- 創(chuàng)造一個空對象
- 自動觸發(fā)類中__init__功能的執(zhí)行,將stu1以及調(diào)用類括號內(nèi)的參數(shù)一同傳入
總結
以上是生活随笔為你收集整理的Python面向对象之定制对象独有特征的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python文件的两种用途
- 下一篇: Python基础教程:菱形继承问题