hasattr:
函数用于判断对象是否包含对应的属性
语法:
hasattr(object, name)
参数:
- object:对象
- name:字符串,属性名
当对象有这个属性的时候,返回True,否则返回False
class test:
x=1
t=test()
print(hasattr(t,'x'))
print(hasattr(t,'y'))
输出:
True
False
getattr
函数用于返回一个对象内部的属性
语法:
getattr(object, name[, default])
参数:
- object:对象,一般是一个类的实例化
- name:字符串,对象的属性名
- default:默认返回值,假如在对象中按照对象的属性名没有查询到相应的属性,那么会返回这个值,如果此时这个值为空,那么会触发AttributeError
用法:
class A:
test=1
def test_function(self,x,y):
z=x+y
print(z)
a=A()
print(getattr(a,'test'))
x=2
y=3
func=getattr(a,'test_function')
print(func(x,y))
输出:
1
5
参考:
getattr
assert
基本用法:
assert condition
等价于:
if not condition:
raise AssertionError
代码示例:
assert True
assert False
zip和*zip理解
官方文档
abs():
返回数字的绝对值
str(object=’’):
将对象转化为string类型
enumerate(sequence, [start=0])
参数sequence代表要被遍历的数据,start代表下标位置
li=['one','two','three']
for i,item in enumerate(li):
print(i,' item:',item)
输出:
0 item: one
1 item: two
2 item: three
zip:
zip()函数用于将可迭代的一组对象作为参数,将对象中对应的元素打包成一个个元组,然后返回这些元组组成的一个对象,这样做的好处是节约了不少的内存,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
可以使用list()
转换来将zip()
函数返回的对象转化为列表,利用*
操作符,我们可以将元组解压为列表。
使用示例:
a=[1,2,3]
b=[4,5,6]
c=[4,5,6,7,8]
zipped=zip(a,b)
print(zipped)
print(list(zipped))
print(list(zip(a,c)))
输出结果:
<zip object at 0x000001D343000748>
[(1, 4), (2, 5), (3, 6)]
[(1, 4), (2, 5), (3, 6)]
zip(a,b)
将a和b中的元素对应组成元组,如果想要看到这个结果,要使用*zip()
,*zip(a,b)
是先将a和b中的元素对应组合成元组形成结果,再将这个结果解压,但并没有返回值,可以借用print输出
a=[1,2,3]
b=[4,5,6]
c=[4,5,6,7,8]
x1,x2,x3=zip(a,b)
print(x1)
print(x2)
print(x3)
print(*zip(a,b))
a1,a2=zip(*zip(a,b))
print(a1)
print(a2)
输出:
(1, 4)
(2, 5)
(3, 6)
(1, 4) (2, 5) (3, 6)
(1, 2, 3)
(4, 5, 6)