python3中函数参数的四种简单用法
下面给大家介绍python3中函数参数的四种简单用法,具体内容如下所示:
defprint_two(*args): arg1,arg2=args print"arg1:%r,arg2:%r"%(arg1,arg2) defprint_two_again(arg1,arg2): print"arg1:%r,arg2:%r"%(arg1,arg2) defprint_one(arg1): print"arg1:%r"%arg1 defprint_none(): print"Igotnothin" print_two("Zed","Shaw") print_two_again("Zed","Shaw") print_one("First!") print_none()
默认参数
看下面代码
defstu_register(name,age,country,course): print("----注册学生信息------") print("姓名:",name) print("age:",age) print("国籍:",country) print("课程:",course) stu_register("王山炮",22,"CN","python_devops") stu_register("张叫春",21,"CN","linux") stu_register("刘老根",25,"CN","linux")
发现country这个参数基本都是"CN",就像我们在网站上注册用户,像国籍这种信息,你不填写,默认就会是中国,这就是通过默认参数实现的,把country变成默认参数非常简单
defstu_register(name,age,course,country="CN"):
这样,这个参数在调用时不指定,那默认就是CN,指定了的话,就用你指定的值。
另外,你可能注意到了,在把country变成默认参数后,我同时把它的位置移到了最后面,为什么呢?
关键参数
正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。
stu_register(age=22,name='alex',course="python",)
非固定参数
若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数
defstu_register(name,age,*args):#*args会把多传入的参数变成一个元组形式 print(name,age,args) stu_register("Alex",22) #输出 #Alex22()#后面这个()就是args,只是因为没传值,所以为空 stu_register("Jack",32,"CN","Python") #输出 #Jack32('CN','Python')
还可以有一个**kwargs
defstu_register(name,age,*args,**kwargs):#*kwargs会把多传入的参数变成一个dict形式 print(name,age,args,kwargs) stu_register("Alex",22) #输出 #Alex22(){}#后面这个{}就是kwargs,只是因为没传值,所以为空 stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong") #输出 #Jack32('CN','Python'){'province':'ShanDong','sex':'Male'}
局部变量
name="AlexLi" defchange_name(name): print("beforechange:",name) name="金角大王,一个有Tesla的男人" print("afterchange",name) change_name(name) print("在外面看看name改了么?",name)
输出
beforechange:AlexLi afterchange金角大王,一个有Tesla的男人
在外面看看name改了么?AlexLi
全局与局部变量
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
总结
以上所述是小编给大家介绍的python3中函数参数的四种简单用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!