例子:
def stu_register1(name,age,*args,**kwargs):
print(name,age,args,kwargs)
stu_register1("xiaoxue",25,2,3)
stu_register1("Jack",32,"CN","Python",sex="Male",province="ShanDong")
输出:
xiaoxue 25 (2, 3) {}
Jack 32 ('CN', 'Python') {'sex': 'Male', 'province': 'ShanDong'}
可以看出,args,kwargs 是python中的可变参数,*args 表示任何多个无名参数,他是一个tuple;**kwargs 表示关键字参数,是一个字典dict,并且同时使用*args和kwargs时,必须*args参数列要在**kwargs前,否则有时在调用时,会提示语法错误。
知道*args和**kwargs是什么了吧,还有一个漂亮的用法,就是创建字典:
def create_dict(**kwargs):
# print(kwargs)
return kwargs
dict1=create_dict(name="zongyimin",sex="male",province="HeBei")
print(dict1)
输出:
{'sex': 'male', 'name': 'zongyimin', 'province': 'HeBei'}
其实python中就带有dict 类,使用dict(a=1,b="two")即可。但是输出结果却是随机输出
print(dict(a=1,b="two"))
输出:
{'b': 'two', 'a': 1} or {'a': 1, 'b': 'two'}
变量定义的规则:
-
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
-
以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']