Python唯一支持的参数传递方式是『共享传参』(call by sharing)
多数面向对象语言都采用这一模式,包括Ruby、Smalltalk和Java(Java的引用类型是这样,基本类型按值传递)
共享传参是指函数的各个形式参数获得实参中各个引用的副本;也就是说,函数内部的形参是实参的别名(alias)
这种方案的结果是,函数可能会修改作为参数传入的可变对象,但是无法修改那些对象的标识(即不能把一个对象替换为另一个对象)
位置参数
位置参数是最简单的传入参数的方式,在其它的语言中也常常被使用
演示一:
def func(a, b):
print(a+b)
func(1, 2) #3
演示二:
def power(x, n):
s = 1
while(n > 0):
n -= 1
s *= n
return s
power(2, 3) #8
默认参数
默认参数就是在调用函数的时候使用一些包含默认值的参数
在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
def power(x, n=2):
s = 1
while(n > 0):
n -= 1
s *= n
reutrn s
power(3) #9
power(2, 3) #8
定义默认参数要牢记一点:默认参数必须指向不变对象!
#以下这个函数如果被多次调用会在默认添加多个END字符串
def add_end(l = []):
l.append('END')
return l
#为了避免这个问题,应该把传入的默认参数设置为不可变的
def add_end(l = None):
l = []
l.append