您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python是一門動態語言嗎”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python是一門動態語言嗎”吧!
動態語言的定義
動態編程語言 是 高級程序設計語言 的一個類別,在計算機科學領域已被廣泛應用。它是一類 在運行時可以改變其結構的語言 :例如新的函數、對象、甚至代碼可以被引進,已有的函數可以被刪除或是其他結構上的變化。動態語言目前非常具有活力。例如JavaScript便是一個動態語言,除此之外如 PHP 、 Ruby 、 Python 等也都屬于動態語言,而 C 、 C++ 等語言則不屬于動態語言。
給對象綁定(添加)屬性
在這里,我們定義了1個類Car,在這個類里,定義了兩個初始屬性Carname和CarMoney,但是人還有性別啊!如果這個類不是你寫的是不是你會嘗試訪問性別這個屬性呢?
>>> C.user = "技術大爆炸">>> P.user'技術大爆炸'>>>
這時候就發現問題了,我們定義的類里面沒有sex這個屬性啊!怎么回事呢? 這就是動態語言的魅力和坑! 這里 實際上就是 動態給實例綁定屬性!
給類綁定(添加)屬性
我們嘗試打印C1.user,發現報錯,C1沒有user這個屬性!---- 給C這個實例綁定屬性對C1這個實例不起作用! 那我們要給所有的Car的實例加上user屬性怎么辦呢? 答案就是直接給Car綁定屬性!
#如果C1這個實例對象中沒有user屬性的話,那么就會訪問它的類屬性None
#可以看到沒有出現異常>>>
給類綁定(添加)屬性
我們直接給Car綁定user這個屬性,重新實例化C1后,C1就有user這個屬性了! 那么function呢?怎么綁定?
既然給類添加方法,是使用類名.方法名 = xxxx,那么給對象添加一個方法也是類似的對象.方法名 = xxxx
完整的代碼如下:
刪除屬性、方法
刪除的方法:
del 對象.屬性名delattr(對象, "屬性名")
通過以上例子可以得出一個結論:相對于動態語言,靜態語言具有嚴謹性!所以,玩動態語言的時候,小心動態的坑!
那么怎么避免這種情況呢? 請使用__slots__,
感謝各位的閱讀,以上就是“Python是一門動態語言嗎”的內容了,經過本文的學習后,相信大家對Python是一門動態語言嗎這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。