内置函数

1、需要掌握
#1 查看对象下面有哪些属性
class Foo:
    pass
obj=Foo()
print(dir(obj)) #obj.下面都有哪些属性

#2 计算商 和余数
print(divmod(10,3))  #(3,1) (商,余数)

#3 打印 索引 对应循环取出的可迭代对象里的值
for i,v in enumerate(['a','b','c']):
    print(i,v)
#4 直接拿出字符串里的表达式
res=eval('1+2')
print(res)

#5 hash(不可变类型) ——》得到哈希值

#6 help() #查看文档注释


#7 判断一个对象是不是一个类的实例
class Foo:
    pass
obj=Foo()
isinstance(obj,Foo)

#8 判断是不是列表
print(isinstance([],list))
#以前的做法===不推荐使用,type不是干这事的
print(type([]) is list)

#9 reversed()反转

#10  zip()拉链函数,把两个可迭代对象拼凑成一个个小元组形式
v1='hello'
v2=[1,2,3,4]
res=zip(v1,v2)
print(res)#<zip object at 0x000000000216F4C0>
print(list(res))#[('h', 1), ('e', 2), ('l', 3), ('l', 4)]

#11  __import__
#  import 'time'
    x=__import__('time')
    x.sleep(3)#就直接可以用了,因为'time'是字符串不是time

#12 pow(a,b,c)的意思是:  计算a**2%c 的余数*****
print(pow(10,2,3))  #打印出1 意思就是 10**2%3余数是1

#__str__方法会在对象被打印时自动触发
#__del__会在对象被删除时自动触发

2、只是了解

#1 进制转换
print(bin(10))#10-2 0b1010
print(oct(10))#10-8 0o12
print(hex(10))#10-16 0xa

#2 判断是否能调用,类、函数,绑定方法,静态方法等等
class Foo:
    pass
print(callable(Foo))

#3 ascii码和数字之间转换
print(chr(65))# A 数字转换为ascii码
print(ord('A')) #65 ascii码转换为数字

#4 不可变集合
s=frozenset({1,2,3})

#5 repr 在交互式环境下敲代码回车一下子直接出来结果就是在底层调用了__repr__
#6 str  在print()的时候底层调用了__str__  所以打印的结果都是字符串类型的就是这个道理


#7  round()四舍五入,有一个特殊的除外
#8  slice 切片 用于批量操作比较方便
s=slice(1,4,2)
l1=[1,2,3,4,5]
l2=[11,33,55,88]
print(l1[s])
print(l2[s])

 3、反射  里面的四种内置函数(掌握)

class Teacher:
    def __init__(self,full_name):
        self.full_name =full_name

t=Teacher('Egon Lin')

# hasattr(object,'name')
hasattr(t,'full_name') # 按字符串'full_name'判断有无属性t.full_name

# getattr(object, 'name', default=None)
getattr(t,'full_name',None) # 等同于t.full_name,不存在该属性则返回默认值None

# setattr(x, 'y', v)
setattr(t,'age',18) # 等同于t.age=18

# delattr(x, 'y')
delattr(t,'age') # 等同于del t.age

 

---34---
posted @ 2020-08-19 15:06  1024bits  阅读(170)  评论(0编辑  收藏  举报