Python--day7--面向对象编程进阶
介紹
學習記錄。。。。
目錄:
面向對象高級語法部分
-
字段
-
方法
-
屬性
類
-
字段
-
-
普通字段
-
靜態字段
-
-
方法
-
-
普通方法
-
類方法
-
靜態方法
-
-
屬性
-
-
普通屬性
-
私有屬性
-
字段
普通字段 ? ?屬于對象, 實例變量,存在每個實例里面,進行實例的時候,開辟一個實例對象,
靜態字段 ? ?屬于類,類變量, 內存中存在類里面,沒實例化,也存在。
方法
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class?Animal: ????def?__init__(self,name): ????????self.name=name ????hobbie?=?'meat' ????@classmethod?##類方法,不能訪問實例變量 ????def?talk(self): ????????print("{}??is???talking".format(self.hobbie)) ????@staticmethod??##靜態方法,不能訪問類變量?和實例變量,大多情況不用,類的工具箱 ????def?walk(): ????????print("?is???talking") ????@property???##屬性,下面就不是方法了,變成了一個屬性,但是依然可以訪問實例和類變量 ????def??habit(self): ????????print("{}??habit??is??xxoo".format(self.name)) d?=?Animal("Hequan") Animal.talk() d.talk() d.walk() d.habit meat??is???talking meat??is???talking ?is???talking Hequan??habit??is??xxoo |
私有屬性 __
self.__num=num
經典類: 深度有限
新式類:廣度優先
類的特殊成員
__doc__ ? ? ? ? 打印注釋
__module__ ? 表示當前操作的對象在那個模塊
__class__ ? ? ? 表示當前操作的對象的類是什么
__init__ ? ? ? ? ?構造方法,通過類創建對象時,自動觸發執行
__del__ ? ? ? ? ?析構方法,當對象在內存中被釋放時,自動觸發執行。執行完成后,統一銷毀。
__call__ ? ? ? ? ?對象后面加括號,觸發執行?
__dict__ ? ? ? ? 查看類或對象中的所有成員、
__new__ \ __metaclass__ ???類的生成 調用 順序依次是 __new__ --> __call__ --> __init__
反射
通過字符串映射或修改程序運行時的狀態、屬性、方法
hasattr
getattr
setattr
delattr
if __name__=="__main__":
? ? server = WebServer('localhost',3306)
? ? if ? hasattr(server,sys.argv[1]): ? ? ? ? ? ? ?
? ? ? ? func = getattr(server,sys.argv[1]) ? ? ##獲取執行后面加的值 ?如 start
? ? ? ? func()
本文轉自 295631788 51CTO博客,原文鏈接:http://blog.51cto.com/hequan/1886936,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Python--day7--面向对象编程进阶的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nmon运行
- 下一篇: linux rsync