Day54日考总结

进制转换

2进制 8进制 10进制 16进制
2进制 - bin(int(x, 8)) bin(int(x, 10)) bin(int(x, 16))
8进制 oct(int(x, 2)) - oct(int(x, 10)) oct(int(x, 16))
10进制 int(x, 2) int(x, 8) - int(x, 16)
16进制 hex(int(x, 2)) hex(int(x, 8)) hex(int(x, 10)) -

简述可迭代对象、迭代器对象、生成器对象

  • 可迭代对象:有__iter__方法

  • 迭代器对象:既有__iter__方法,又有__next__方法

  • 生成器对象:有yield关键字的函数

什么是元类,具体说说元类的应用场景

  • 元类就是生产类的类

  • 应用场景

    '''元类实现单例模式'''
    class MyMeta(type):
        def __init__(self, name, base, arrs):
            # 由object类产生一个空的类对象
            self._instance = object.__new__(self)
            # 用type类实例化类对象
            super().__init__(self, name, base, arrs)
        def __call__(self, *args, **kwargs):
            if args or kwargs:
                init_args = args
                init_kwargs = kwargs
                if init_args==args and init_kwargs==kwargs:
                    return self._instance
                obj = object.__new__(self)
                self.__init__(obj, *args, **kwargs)
                return obj
            return self._instance
    
    class Goo(metaclass=MyMeta):
        def __init__(self, name, age):
            self.name=name
            self.age=age
    obj1 = Goo('Yumi',18)
    obj2 = Goo('Yumi',18)
    print(obj1 is obj2)
            
    

MySQL存储引擎间的区别

'''
Innodb:5.0以后的默认存储引擎,数据存储更安全
myisam:5.0以前的默认存储引擎,数据查询速度比Innodb要更快,安全性没Innodb好
memary:内存引擎,数据全部存在内存中,断电数据丢失
blackhole:黑洞,无论存什么数据都会丢失
'''

定位的特点,哪些脱离文档流哪些不脱离

'''
静态static:标签的默认定位样式,无法改变位置
相对定位:标签可以改变位置,以浏览器左上角为原点往右x轴逐渐增大,往下y轴逐渐增大,为负则方向相反
绝对定位:以相对定位的父标签为基准,父标签的左上角为原点,向右为正,向下为正,为负数则方向相反,
		无父标签就以body标签为参照
固定定位:标签会固定在窗口的某个位置,不会随着页面的滑动而滑动,可以设置left、top、bottom、right来改变位置

不脱离文档流:相对定位
脱离文档流:浮动、绝对定位、固定定位
'''
上一篇:Python中*args,**kwargs两个参数的作用?


下一篇:迟到的 WPF 学习 —— 依赖项属性