python零碎总结

作者 新城 日期 2017-09-05
python零碎总结

类型转换
int(‘123’) 123
int(‘12.34’) 12
float(‘12.34’) 12.34
str(1.23) ‘1.23’
bool(1) True

python 函数可以返回多个数值 其实返回的是一个list

函数设置默认参数

1
2
3
4
5
6
def power(x,n=2)
s = 1
while n>0:
n = n - 1
s = s * x
return s

当我们调用power(5)的时候相当于调用power(5,2) 25

可变参数

1
2
3
4
5
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum

1
2
3
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

在参数前面加* 函数内部接收到的是一个tuple

关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

1
2
3
4
5
6
7
8
def person(name, age, **kw):
if 'city' in kw:
# 有city参数
pass
if 'job' in kw:
# 有job参数
pass
print('name:', name, 'age:', age, 'other:', kw)

和关键字参数*kw不同,命名关键字参数需要一个特殊分隔符,*后面的参数被视为命名关键字参数。

1
2
3
4
def person(name, age, *, city, job):
print(name, age, city, job)

person('Jack', 24, city='Beijing', job='Engineer')

实例属性和类属性

1
2
class Student(object):
__slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称

定制类

str‘ 打印对象的调用

1
2
3
4
5
6
7
8
>>> class Student(object):
... def __init__(self, name):
... self.name = name
... def __str__(self):
... return 'Student object (name: %s)' % self.name
...
>>> print(Student('Michael'))
Student object (name: Michael)