番茄六--获取对象信息
使用type函数
import types
def fn():
pass
type(fn)==types.FunctionType 函数类型
True
type(abs)==types.BuiltinFunctionType 内建函数啊
True
type(lambda x: x)==types.LambdaType
True
type((x for x in range(10)))==types.GeneratorType 生成器啊
True
使用isinstance()函数
要判断class的类型,可以使用isinstance()函数。
isinstance()判断的是一个对象是否是该类型本身,或者位于该类型的父继承链上。
isinstance(cat,object)
True
isinstance(cat,Animal)
True
isinstance(cat,Cat)
True
使用dir()
如果要获得一个对象的所有属性和方法,可以使用dir()函数,它返回一个包含字符串的list,比如,获得一个str对象的所有属性和方法:
然后我明白了len和str的用法!很棒啊。需要多练习,在用dir来测试。
类似xxx的属性和方法在Python中都是有特殊用途的,比如len方法返回长度。
重要【我花了十几分钟搜索,才找到用len求list里面的个数,晕死】
在len()函数内部,它自动去调用该对象的len()方法,s.len() 或者 len(s)
例题:
假设有一个list是[2,1,4,1,5,1,6,1],如果我想统计这个list中有多少个1,以及每个1的位置,应该如何写呢?
a = [1,2,3,1]
a.count(1) # 2
a.index(1) # 0
[x for x in range(len(a)) if a[x] == 1] # 一次获得所有位置
网友评论