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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

内置函数(面向对象)

發布時間:2024/1/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内置函数(面向对象) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這里我會只針對類和對象常規會用到的以下4個內置函數進行實例介紹

  • hasattr
  • getattr
  • setattr
  • delattr

下面是主體函數

class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name)

針對類

  • hasattr

判斷school這個屬性在不在Teacher這個類里返回值為布爾值

class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name) print(hasattr(Teacher,"school")) "D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" TrueProcess finished with exit code 0
  • getattr

取出school在Teacher中綁定的值

class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name) print(hasattr(Teacher,"school")) "D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" MITProcess finished with exit code 0

同時getattr還有另外一種用法:即在可以查看類的屬性指定一個返回值

class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name)"D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" NoneProcess finished with exit code 0
  • setattr

設定類的數據屬性值

class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name)Teacher.x=3 setattr(Teacher,"x",123) print(Teacher.x)"D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" 123Process finished with exit code 0
  • delattr

刪除類的數據屬性

class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name)delattr(Teacher,"school") print(getattr(Teacher,"school",None)) "D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" NoneProcess finished with exit code 0

針對對象

  • hasattr
class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name)t=Teacher("whatmini",18) print(hasattr(t,"name"))"D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" TrueProcess finished with exit code 0
  • getatt
class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name) t=Teacher("whatmini",18) print(getattr(t,"name")) "D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" whatminiProcess finished with exit code 0
  • setattr
class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name)setattr(t,"sex","male") print(getattr(t,"sex"))"D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" maleProcess finished with exit code 0
  • delattr
class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name) print(t.__dict__) delattr(t,"name") print(t.__dict__)"D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" {'name': 'whatmini', 'age': 18} {'age': 18}Process finished with exit code 0

這里我演示的刪除是在對象的字典中直接刪除。需要明白的是這四個內置函數在對類和對象的屬性進行的增刪查該的行為,都是在類和對象的名稱空間進行的,這是本質的行為。

class Teacher:school="MIT"def __init__(self,name,age):self.name=nameself.age=agedef teach(self):print("%s teach" %self.name) print(getattr(t,"teach")) print(getattr(t,"school")) t.school="kjkjkjkjkj" print(t.__dict__)"D:\Program Files\python.exe" "E:/py_code/day 12/反射.py" <bound method Teacher.teach of <__main__.Teacher object at 0x00000000029420B8>> MIT {'name': 'whatmini', 'age': 18, 'school': 'kjkjkjkjkj'}Process finished with exit code 0

轉載于:https://www.cnblogs.com/lijian-22huxiaoshan/p/7133023.html

總結

以上是生活随笔為你收集整理的内置函数(面向对象)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。