python规范
1.函数和模块,使用小写字母和_命名
2.类,使用驼峰命名法并以大写字母开头
2.在类定义后面包含一个文档字符串
4.在类中使用一个空行来分隔方法
5.在模块中,可使用两个空行来分隔类。
6.需要同时导入标准库中的模块和你编写的模块时,先编写导入标准库模块的import语句,再添加一个空行,然后编
写导入你自己编写的模块的import语句。
python传递参数
1.位置实参
2.关键字实参
3.默认值
4.不定长参数(参数形如*args,使用一个元组来接收除位置实参外的所有的参数)
调用顺序:
.使用关键字参数时,可以不考虑行参与实参的位置对应
.位置参数与默认值/不定长参数混用时,位置参数在前,默认值/不定长参数在后
不定长参数
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入
0个或任意个关键字参数,这些关键字参数在函数内部自动组装为一个dict。
形参的定义:
*args是可变参数,args接收的是一个tuple
**kw是关键字参数,kw接收的是一个dict。
实参的传入:
可变参数既可以直接传入:func(1, 2, 3),也可以先组装list或tuple,再通过args传入:func((1, 2, 3));
*参数示例:
# 使用*参数,定义函数calc
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
nums1 = (1, 2, 3)
nums2 = [1, 2, 3]
>>>print(calc(nums1[0], nums1[1], nums1[2]))
14
>>>print(calc(*nums1))
14
>>>print(calc(nums2[0], nums2[1], nums2[2]))
14
>>>print(calc(*nums2))
14
关键字参数既可以直接传入:func(a=1, b=2),也可以先组装dict,再通过kw传入:func({‘a’: 1, ‘b’: 2})。
**参数示例
# 使用**参数,定义函数person
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
>>>person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
>>>person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
使用args和*kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。