函數對象
如下運行結果所示,當我們定義一個函數時,就相當於創建了一個對象,這個對象叫函數對象,它有自己的ID。
全局變量和局部變量
當全局變量和局部變量重名時,要想在函數內部使用全局對象需要先聲明。後面的代碼對重名的變量進行操作時,使用的就都是全局變量。否則,在函數內使用的都是局部變量。
函數傳參
在Python中,所有賦值操作都是引用。也就是賦值號的左值是右值的別名。用可變對象進行傳參時,“寫操作”直接作用在原對象本身。對不可變對象,則會發生寫時拷貝。
可變對象 | 不可變對象 |
---|---|
字典 | 數字 |
列表 | 字符串 |
集合 | 元組 |
自定義對象 | function |
如上圖所示,在a傳進函數後,得到的id是相同的,證實函數傳參是傳引用,在對a的列表元素進行修改時,因爲列表屬於可變元素,所以列表地址不變。