動態語言的定義shell
動態編程語言 是 高級程序設計語言 的一個類別,在計算機科學領域已被普遍應用。它是一類 在運行時能夠改變其結構的語言 :例如新的函數、對象、甚至代碼能夠被引進,已有的函數能夠被刪除或是其餘結構上的變化。動態語言目前很是具備活力。例如JavaScript即是一個動態語言,除此以外如 PHP 、 Ruby 、 Python 等也都屬於動態語言,而 C 、 C++ 等語言則不屬於動態語言。編程
給對象綁定(添加)屬性編程語言
class Car(object): def __init__(self, Carname = None, CarMoney = None): self.Carname= Carname self.CarMoney= CarMoney C = Car("法拉利", "3000000")
在這裏,咱們定義了1個類Car,在這個類裏,定義了兩個初始屬性Carname和CarMoney,可是人還有性別啊!若是這個類不是你寫的是否是你會嘗試訪問性別這個屬性呢?函數
>>> C.user = "技術大爆炸">>> P.user'技術大爆炸'>>>設計
這時候就發現問題了,咱們定義的類裏面沒有sex這個屬性啊!怎麼回事呢? 這就是動態語言的魅力和坑! 這裏 實際上就是 動態給實例綁定屬性!code
給類綁定(添加)屬性對象
C1 = Car("悍馬", "2000000") C1.user Traceback (most recent call last): File "<pyshell#21>", line 1, in <module> C1.user AttributeError: Car instance has no attribute 'user'>>>
咱們嘗試打印C1.user,發現報錯,C1沒有user這個屬性!---- 給C這個實例綁定屬性對C1這個實例不起做用! 那咱們要給全部的Car的實例加上user屬性怎麼辦呢? 答案就是直接給Car綁定屬性!ip
Car.user = None #給類Car添加一個屬性>>> C1 = Car("悍馬", "2000000") print(C1.user)
#若是C1這個實例對象中沒有user屬性的話,那麼就會訪問它的類屬性Noneit
#能夠看到沒有出現異常>>>io
給類綁定(添加)屬性
咱們直接給Car綁定user這個屬性,從新實例化C1後,C1就有user這個屬性了! 那麼function呢?怎麼綁定?