函数参数的定义顺序:必选参数、默认参数、可变参数calc(*args)、命名关键字参数、关键字参数**kW
# name 1必选参数
# age 2默认参数
# langskills 3可变参数,接收tuple,可空
# city,job 4命名关键字参数
# other 5关键字参数,接收dict,可空
def person(name, age=18, *langskills, city='Shanghai',
job='programmer', **other):
print('name:', name)
print('age:', age)
print('langskills:', langskills)
print('city:', city)
print('job:', job)
print('other:', other)
# city和job有默认值后,可在参数中省去,否则报missing required keyword-only arguments
# person('xiaoming')
# person('xiaoming',20)
# person('xiaoming', 'javascript') # age: javascript, 跳不过的age???
# person('xiaoming', 20, city='Beijing', job='coder')
person('xiaoming', 20, 'javascript', 'C', city='Shanghai',
job='programmer', sport='billiards', game='hyxd')