def Pname(): #当前函数不放参数 print(‘大家好我是杰大哥!‘) Pname() #调用函数 执行了函数里面的代码 pri = Pname #将函数名赋值给另一个变量,相当于给当前函数取一个别名 pri() #pri()的作用等于Pname()
def Pname(userName): #userName为形参 形参的名字是自定义的 print(‘大家好我是%s同学!‘%userName) Pname(‘刘德华‘) #传递了一个实参 ‘刘德华‘ #必备参数 def getInfo(name,address): print(‘大家好我叫%s,我来自%s‘%(name,address)) getInfo(‘刘德华‘,‘香港‘) #第一个实参对应了第一个形参,第二实参对应第二个形参 # getInfo(‘刘德华‘) #形参有两个,调用的时候,实参也要传递两个,否则会报错 #参数的个数不能少,不能多。 参数的位置要一一对应 #关键字参数 def getInfo(name,address): print(‘大家好我叫%s,我来自%s‘%(name,address)) getInfo(name=‘刘德华‘,address=‘香港‘) #给实参加上关键字 关键字对应着形参 #参数的默认值 def getInfo(name,address = ‘香港‘): #默认值参数,就是在声明函数的时候给形参赋值 print(‘大家好我叫%s,我来自%s‘%(name,address)) getInfo(‘刘德华‘) #有默认值的形参,可以不用传递 getInfo(‘刘德华‘,‘九龙‘) #传递参数时,会覆盖原来的默认值 ‘‘‘ 不定长参数 *args 是接受所有未命名的参数(关键字) **agrs2 是接受所有命名的参数(带关键字的) 输出为 大家好我叫刘德华,我来自九龙 (‘a‘, ‘b‘, ‘c‘, ‘d‘) {‘age‘: 18} ‘‘‘ def getInfo(name,address,*args,**agrs2): print(‘大家好我叫%s,我来自%s‘%(name,address)) print(args) #args 是一个元组类型 print(agrs2) #字典数据类型 getInfo(‘刘德华‘,‘九龙‘,‘a‘,‘b‘,‘c‘,‘d‘,age = 18)
#不可变对象的传递——值的传递 def fun(args): args = ‘hello‘ #重新赋值 print(args) #输出为hello str1 = ‘baby‘ #声明一个字符串的变量 不可变数据类型 fun(str1) #将该字符串传递到函数中 print(str1) #输出为baby 并没有被改变 #可变对象的传递——引用传递 def fun(args): args[0] = ‘hello‘ #重新赋值 print(args) #输出为[‘hello‘, ‘come on‘] list01 = [‘baby‘,‘come on‘] #声明一个列表 可变数据类型 fun(list01) #将该字符串传递到函数中 print(list01) #输出为[‘hello‘, ‘come on‘] 传递的是对象本身,函数里面被修改了值,原对象也会跟着修改
原文:https://www.cnblogs.com/lanzhijie/p/11628649.html