• 知识补充之面向对象魔法方法及mysql等相关内容


    # 1 seo sem
    百度搜索充钱可以靠前的是sem
    不充钱靠前的seo
    谷歌,必应国际版
    百度搜不到,搜出来的10篇文章9篇一毛一样,碰到一个问题,怎么解决,知乎(2个),思否(1个),csdn(没有)

    面向对象相关

    1 initnew区别?


    造出一个空对象,__new__干的
    把属性放入对象中,__init__干的事

    # class Car:
    #     pass
    #
    # class Foo():
    #
    #     def __new__(cls, *args, **kwargs):
    #         obj=Car()
    #         return obj
    #
    #     def __init__(self, name):
    #         self.name = name
    #         print('我是init')
    #
    #
    # f=Foo('lqz')
    # print(f.name)

    2__ setattr__ __getattr__

    # 1 __ setattr__的使用
    # 2 递归现象的出现
    -通过反射赋值 setattr(obj,key,value)
       -self.key=value
    # 3 避免递归
    -self.__dict__[key] = value
       -object.__setattr__(self,key,value)
    # 4 object.__setattr__(f,'_Foo__size',178)的使用

    # 5 __getattr__
    -对象.属性 取值属性不存在就会触发它的执行
       
    # 6 应用场景(字典只支持中括号取值和赋值,让它支持 . 取值和赋值)

    3 __setitem____getitem__

    # 对象[]取值赋值会触发它的指向

    # 不继承字典,还支持[]赋值取值
    class Foo:
       def __setitem__(self, key, value):
           setattr(self, key, value)
           # object.__setattr__(self,key,value)

       def __getitem__(self, item):
           return getattr(self, item)


    f = Foo()
    f.name = 'lqz'
    print(f.name)
    print(f['name'])
    f['age'] = 19
    print(f.age)
    print(f['age'])

     

    4 __slots__

    class A:
      __slots__ = ['name', 'age']

    a1 = A()
    # print(a1.__dict__) # AttributeError: 'A' object has no attribute '__dict__'
    a1.name = '张三'
    a1.age = 24
    print(a1.age)
    # a1.hobby = '泡妞' # AttributeError: 'A' object has no attribute 'hobby'
    a1.size=179
    print(a1.__slots__)

    5 __call__

    # __call__

    class Foo():
      def __call__(self, *args, **kwargs):
          print('我被执行了')

    # Foo() 会触发元类的 __call__方法
    f = Foo()
    f()

    6 __doc__

    class A:
      """我是A类的描述信息啊手动阀手动阀"""
      pass

    print(A.__doc__)

    7 __eq__

    ## 对象 == 比较时触发执行
    class A:
      def __init__(self,x,y):
          self.x = x
          self.y = y

      def __eq__(self,obj):
          # 打印出比较的第二个对象的x值
          print(obj.x)
          if self.x +self.y == obj.x+obj.y:
              return True
          else:
              return False

    a = A(1,2)
    b = A(2,2)
    print(a == b)

    8 type 和object 的关系

    # type 类,继承object,是所有类的类,包括自己
    # object类:谁都没继承,它是由type实例化得到的,是所有类的父类,包括type

    数据库相关

    1 mysql版本选择

    5.5 :企业基本不用了
    5.6 :****:四星 5.6.36  5.6.38 5.6.40 ...5.6.46
    5.7 :*****:五星 5.7.20 5.7.22 ....5.7.28 5.7.30(5.7版本最新)
    8.0(最新) :**:两星 8.0.11 开始,之前都是测试版 ...8.0.20

    2 MySQL分支版本

    # 去ioe:ibm,oracle,emc
    # PostgreSQL,oracle,mysql
    # 分支
    Oracle:
          MySQL官方版
    红帽 :
          MariaDB:红帽维护的分支
    Percona:
          PerconaDB:Percona公司维护的分支
    # 版本
    企业版:收费
    社区版:开源免费
    
    # linux内核,GPL开源协议,红帽  centos

    3 mysql 架构

    客户端启动:mysql -uroot -p123456 -P 3306 -h 127.0.0.1
    	-cmd窗口下执行
        -tcp协议
        -navicat
        -pymysql(用python写的符合他们通信协议的客户端)
    服务端启动:mysqld  加载了配置文件(找了一些路径)

    4 一条SQL语句的执行过程

    连接层
    sql层
    	DDL :数据定义语言
        DCL :数据控制语言
        DML :数据操作语言
        DQL: 数据查询语言
    存储引擎层

    5 varchar类型

    varchar最多能存储65535个字节的数据  varchar(255)  
  • 相关阅读:
    错误:net::ERR_BLOCKED_BY_CLIENT
    ui-grid angularjs
    angular Js 回车处理
    百度云盘-真实地址 F12 控制台
    Js 跨域CORS报错 Response for preflight has invalid HTTP status code 405
    angularjs 路由参数
    AngularJs Angular数据类型判断
    Bootstrap+AngularJS对话框实例
    AngularJs表单自动验证
    IIS7.5上的REST服务的Put操作发生HTTP Error 405.0
  • 原文地址:https://www.cnblogs.com/usherwang/p/13635648.html
Copyright © 2020-2023  润新知