形參就是函數入口的參數,函數入口參數傳遞只有傳值與傳值兩種區別。傳值在python里就是以對象,比如數組或者是類來傳遞。至于實參,我印象中是傳遞常量吧。如果不是這樣,應該沒有實參的說法。是某些老師為了忽悠,編造出來的概念游戲。簡單變量應該是指相對對象來講的。在python里,只有對象與基本變量類型。簡單變量的說法在python里似乎也沒有意義。所以,忘記簡單變量與實參這樣的說法。
成都創新互聯-專業網站定制、快速模板網站建設、高性價比阿合奇網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式阿合奇網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋阿合奇地區。費用合理售后完善,十多年實體公司更值得信賴。
import inspect
from demo import demo
#傳入函數,改變函數內部變量a,從a=1改變成a=2
def cfunc(func):
#當前位置的全部局部變量
lc=locals()
#獲得函數的內容
func_code=inspect.getsource(func)
#使用replace改變函數內部的變量
func_code=func_code.replace('a=1','a=2')
#動態創建函數
exec(func_code)
#獲得函數并返回
res_func=lc[func.__name__]
return res_func
demo=cfunc(demo)
demo()
樓上說的很好,初學小白的我也想到了同樣的問題。按照樓上的提示我搜索了不可變對象與可變對象,參考該篇博文摘取部分網頁鏈接網頁鏈接
python中,對象分為可變(mutable)和不可變(immutable)兩種類型,元組(tuple)、數值型(number)、字符串(string)均為不可變對象,而字典型(dictionary)和列表型(list)的對象是可變對象。
所謂可變對象是所謂可變對象是指,對象的內容可變,而不可變對象是指對象內容不可變。
題目中l是列表變量,為可變變量,每次調用函數可以改變該對象的內容;而題中的s為字符串變量,是不可變對象,調用了字符串操作函數lstrip()只會生成一個拷貝,對拷貝去除空格,而變量s本身不發生改變。
標題名稱:python函數改變值 python修改屬性值
本文地址:http://m.newbst.com/article44/doojiee.html
成都網站建設公司_創新互聯,為您提供移動網站建設、軟件開發、標簽優化、關鍵詞優化、企業網站制作、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯