日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python面向对象之定制对象独有特征

發(fā)布時間:2025/3/20 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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()
  • 對于上述的學生類,如果類的屬性改了,則其他對象的屬性也會隨之改變
OldboyStudent.school = 'OLDBOY' print(stu1.school) OLDBOY print(stu2.school) OLDBOY

二、定制對象獨有特征

print(stu1.__dict__) {} print(stu2.__dict__) {}
  • 對象本質(zhì)類似于類,也是一個名稱空間,但是對象的名稱空間存放對象獨有的名字,而類中存放的是對象們共有的名字。因此我們可以直接為對象單獨定制名字。
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' stu1.name = 'tank' stu1.age = 18 stu1.gender = 'male'print(stu1.name, stu1.age, stu1.gender) tank 18 male try:print(stu2.name, stu2.age, stu2.gender) except Exception as e:print(e) 'OldboyStudent' object has no attribute 'name' stu2.name = 'sean' stu2.age = 19 stu2.gender = 'female'print(stu2.name, stu2.age, stu2.gender) sean 19 female

三、屬性查找

  • 首先從自身查找,沒找到往類中找,類中沒有則會報錯。即對象的屬性查找順序為:自身–》類–》報錯

四、類定義階段定制屬性

''' 遇到問題沒人解答?小編創(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__方法。
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class OldboyStudent:school = 'oldboy'def __init__(self, name, age, gender):"""調(diào)用類的時候自動觸發(fā)"""self.name = nameself.age = ageself.gender = genderprint('*' * 50)def choose_course(self):print('is choosing course')try:stu1 = OldboyStudent() except Exception as e:print(e) __init__() missing 3 required positional arguments: 'name', 'age', and 'gender' stu1 = OldboyStudent('nick', 18, 'male') **************************************************
  • 通過上述現(xiàn)象可以發(fā)現(xiàn),調(diào)用類時發(fā)生兩件事:
  • 創(chuàng)造一個空對象
  • 自動觸發(fā)類中__init__功能的執(zhí)行,將stu1以及調(diào)用類括號內(nèi)的參數(shù)一同傳入
print(stu1.__dict__) {'name': 'nick', 'age': 18, 'gender': 'male'}

總結

以上是生活随笔為你收集整理的Python面向对象之定制对象独有特征的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。