一些语法

语法:

isinstance
格式:isinstance(对象,类)
检测一个对象是否是某个类的实例,或者是其子类的实例
issubclass
格式:issubclass(被检测类,父类)
检测一个类是否是另外一个类的子类
__class__:
特殊属性,作用:可以获取某个对象所属的类


hasattr(obj,name)
判断是对象obj中是否有名字为name的属性,有则Ture,没有则False
格式:hasattr(对象,‘属性名’)

getattr(obj,name)
    获取对象obj中,属性名为name的值,这个值有可能是方法
delattr
    删除某个对象的属性
    格式:delattr(对象,‘属性名’)
setattr
    为某个对象的某个属性设置值
    格式:setattr(对象,‘属性名’)
生成器生成数据:
    next(g)
    g.__next__()
    g.send(argv)
__hash__
    hash()函数
    hash表存储数据原理:
        1,计算哈希值,决定hash表中存储的位置
        2,与当前位置其他对象去比较,如果相等,则不存储,不等,才存储进来
        按指定的内容去比较
        def__eq__(self,other):
            return self.id=other.id
多继承
    class 子类(父类1,父类2...)
        pass
多继承条件下的方法继承问题:
1,一个类可以继承多个父类,子类可以继承父类中所有非私有方法
2,如果子类中有方法与父类中的方法同名,优先使用子类中的方法
3,如果多个父类中存在同名方法,则调用的方法,取决于继承顺序
多继承属性问题:
    类属性:
        如果多个父类中存在同名属性,子类使用的取决于继承顺序
        如果子类中有方法与父类中的方法同名属性,以子类为准
面向对象特征:
    1,封装
        类的封装
            属性(成员变量)
                动态条件属性:
                    对象名.属性名=value
            访问属性:
                对象名.属性名
        为类模板添加属性:
            __init__(self)方法
                创建对象时会被调用
                每创建一个对象都会被调用一次
            行为(成员函数<方法>)
继承:
    class类名(父类)
        pass
    class 类名(object)
        pass
    继承的作用:
        子类可以访问父类中所有的属性,方法
    继承的好处:
        减少重复代码(减少代码冗余度)
        易拓展,易维护
    如果一个类没有明确指明父类是谁,则默认父类是object
    class类名(父类)
        pass
    __init__()
    调用父类的方法
        super()
        super(类名,对象).父类(方法)
    方法(覆写,复写):
        父类中有这个方法,子类将该重新实现了一遍
    什么场景下需要复写?
        如果父类中的方法不能满足子类的需求,实现方法复写
属性复写:
    类属性
    定义位置:类内,方法外
    
    子类中如果重新定义了该属性,以子类的为准,如果没有,则使用继承的父类的

自定义对象的比较:
is:
    比较两个对象是否为同一个
==:
    本质调用__eq__

    用来比较两个对象内容是否一致
运算符重载问题:
    == -> __eq__
    >  -> __gt__
    +  -> __add__
魔法方法:、
    __new__:
        创建对象时,分配内存的时候会被自动触发
    __del__
        当对象要被系统回收时,会被触发
    __call__
        一个对象被当成方法调用时,会自动执行
    __repr__
        用法类似__str__,是__str__的备胎
判断字符串常用方法
变形
    upper 转大写
    lower 转小写
    swpcase 大小写互换
    title 单词首字母大写
    capitalize 首字母大写
判断
    starswith 以什么开头
    endwith 以什么结尾
    isdigit 判断字符串是否由纯数字组成
    islower 判断字符串是否为纯小写
    isupper 判断字符串是否为纯大写
    isalpha 判断字符串是否为纯字母,至少得有一个
    isalnum 判断字符串是否由字母或者数字组成,至少得有一个
查找:
    find
    rfind
    index
    rindex
    count
替换
    replace


推导式:
    变量名=[表达式 for 变量 in 列表]
或者变量名=[表达式 for 变量 in 列表 if 条件]
或者变量名=[表达式 for 变量 in 列表 for in]
    语义:遍历出列表中的内容给变量,表达式根据变量值进行逻辑运算。或者遍历列表中的内容给变量,然后进行判断,符合的值在给表达式。
字典推导式:变量名={表达式(键值对) for ...}
d={chr(i):i for i in range(65,65+26)}
print(d)
运行后:A:65,B:66...
d1={v:k for k,v in d,items()}
print(d1)
这样就实现类键值翻转

使用匿名函数封装 lambda a,b:a+b
命名空间:
分类:
    内置的命名空间
    全局的命名空间 globals()
    局部的命名空间 locals()
系统加载顺序:
    内置->全局->局部
调用时搜索顺序:
    局部->全局->内置
作用域:
    LEGB:
    L:
        局部-
    E:
        闭包
    G:
        全局-
    B:
        内置-
常用模块:
    random()产生大于0且小于1之间的小数
    uniform(a,b)产生指定范围内的随机小数
    randint(a,b) 产生a,b范围内的整数包括开头和结尾
    random,choice(lst)随机返回序列中的一个数据
    random.shuffle()随机打乱列表顺序
    random.sample(list,n)返回一个从list中随机取n个非重复元素的新列表
sys
    sys.getsizeof()获取目标占用内存大小
    sys.version获取python版本
    sys.exit接收python解释器
    sys.exec_prefix python安装路径
    sys.argv外部传进来的参数
    sys.path引入模块时,搜索的路径,先搜索当前路径,后搜索系统路径
时间模块
    时间戳
    1970.1.1 0:0:0 计算机记录
    time.time() 
2,字符串时间
time.asctime()
ret=time.strftime('%Y-%m-%d %H:%M:%S')
3,元组时间(用来操作时间的)
time.localtime()
格式转换
1,时间戳转元组时间
ts=time.time()
ret=time.localtime(ts)
print(ret)
2,时间元组转时间戳
ts=time.localtime()
ret=time.mktime(ts)
print(ret)
3,时间元组转字符串时间
ret=time.strtime("%Y-%m-%d,time.localtime())
print(ret)
4,字符串转时间元组
print(time.strptime('2018-08-08','%Y-%m-%d'))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值