大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
形参就是函数入口的参数,函数入口参数传递只有传值与传值两种区别。传值在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本身不发生改变。