内置函数(面向对象)
生活随笔
收集整理的這篇文章主要介紹了
内置函数(面向对象)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這里我會只針對類和對象常規會用到的以下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
- getatt
- setattr
- delattr
這里我演示的刪除是在對象的字典中直接刪除。需要明白的是這四個內置函數在對類和對象的屬性進行的增刪查該的行為,都是在類和對象的名稱空間進行的,這是本質的行為。
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
總結
以上是生活随笔為你收集整理的内置函数(面向对象)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SD从零开始01-02
- 下一篇: 关于Jsp页面的jstl标签的级联属性的