首页 > 编程 > Python > 正文

python3中函数参数的四种简单用法

2020-02-15 22:19:02
字体:
来源:转载
供稿:网友

下面给大家介绍python3中函数参数的四种简单用法,具体内容如下所示:

def print_two(*args):  arg1, arg2 = args  print "arg1: %r, arg2: %r" % (arg1,arg2)def print_two_again(arg1, arg2):  print "arg1: %r, arg2: %r" % (arg1, arg2)def print_one(arg1):  print "arg1: %r" % arg1def print_none():  print "I got nothin"print_two("Zed","Shaw")print_two_again("Zed","Shaw")print_one("First!")print_none()

默认参数

看下面代码

def stu_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变成默认参数非常简单

def stu_register(name,age,course,country="CN"):

这样,这个参数在调用时不指定,那默认就是CN,指定了的话,就用你指定的值。

另外,你可能注意到了,在把country变成默认参数后,我同时把它的位置移到了最后面,为什么呢?  

关键参数

正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。

stu_register(age=22,name='alex',course="python",)  

非固定参数

若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

def stu_register(name,age,*args): # *args 会把多传入的参数变成一个元组形式  print(name,age,args)stu_register("Alex",22)#输出#Alex 22 () #后面这个()就是args,只是因为没传值,所以为空stu_register("Jack",32,"CN","Python")#输出# Jack 32 ('CN', 'Python')

还可以有一个**kwargs

def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式  print(name,age,args,kwargs)stu_register("Alex",22)#输出#Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")#输出# Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}

局部变量  

name = "Alex Li"def change_name(name):  print("before change:",name)  name = "金角大王,一个有Tesla的男人"  print("after change", name)change_name(name)print("在外面看看name改了么?",name)

输出

before change: Alex Liafter change 金角大王,一个有Tesla的男人

在外面看看name改了么? Alex Li

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表