实例化

flask上下文管理机制

百般思念 提交于 2019-11-27 14:36:37
flask中的上下文分为请求上写文和应用上下文,接下来,从以下三个大的方面分别探讨flask的两大上下文管理机制。 方面一:请求进来时 方面二:视图函数 方面三:请求结束前 先来一个最简单的flask版的Hello World from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "Hello World" if __name__ == '__main__': app.run() Flask版Hello World flask版的Hello World 启动一个flask项目时,会先执行app.run()方法,这是整个项目的入口,执行run方法时,接着执行werkzeug模块中的run_simple 此时的self指的是我们实例化的Flask对象,即app,当请求到来时,会触发调用Flask的__call__方法。 一、请求进来时 触发执行__call__方法,__call__方法的逻辑很简单,直接执行wsgi_app方法,将包含所有请求相关数据和一个响应函数传进去。 此时的self指的是Flask的实例化对象app,接下来执行app的wsgi_app方法。 此时的self仍然指的是Flask的实例化对象app,首先执行app这个对象的request_context的方法

方法调用及传参

此生再无相见时 提交于 2019-11-27 14:14:29
静态方法:有static修饰的方法。 非静态方法:没有static修饰的方法。 方法调用: 一静态方法调用 静态方法/属性 1)一个类:直接调用。 2)不同类/不同文件: a: 类名.属性名/方法名 b:实例化对象。 类名 对象名 = new类名(); 对象名. 属性/方法 二静态调用 非静态方法/属性 都先实例化对象。 类名 对象名 = new类名(); 对象名. 属性名/方法名 一非静态调用静态方法 二非静态调用非静态方法 1)同一类中:直接调用 2)不同类中: a: 类名 . 方法(只能是静态属性) b:实例化对象 总结:可直接调用的三种情况 1.一个类中 静态调静态 。 2. 一个类中 非静态调用 静态/非静态。 3. 静态 类名.静态属性/静态方法。 public class Demo03{ int age; public static void main(String []args){ System.out.println(Demo04.name);//静态调用静态1 Demo04.eat(); Demo04 d = new Demo04();//静态调用静态2 System.out.println(d.name); d.eat(); Demo03 d1 = new Demo03();//静态调用非静态 d1.method(); System.out.println

orm,思路详解

萝らか妹 提交于 2019-11-27 13:38:18
第一部分 from mysql_singleton import MySql # 先创建字段类 class Field(object): def __init__(self, name, column_type, primary_key, default): self.name = name self.column_type = column_type self.primary_key = primary_key self.default = default # 我们在创建一个简短的字段类 # 比如int类型的字段类 class IntegerField(Field): def __init__(self, name, column_type="int", primary_key=False, default=0): # 一定要调用父类的__init__方法 super().__init__(name, column_type, primary_key, default) # 在定义一个str字段的类 class StringField(Field): def __init__(self, name, column_type="varchar(32)", primary_key=False, default=None): # 一定要调用父类的__init__方法 super()._

设计模式(单例模式、工厂、简单工厂、抽象工厂、代理模式、装饰者模式、观察者模式、适配器模式)

☆樱花仙子☆ 提交于 2019-11-27 12:50:55
一、单例模式 二、代理模式 一、单例模式 1.单例模式的定义 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 2.单例模式的特点 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 3.单例模式的应用 在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。 这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态。 4.单例模式的Java代码 单例模式分为懒汉式(需要才去创建对象)和饿汉式(创建类的实例时就去创建对象)。 5.饿汉式 属性实例化对象 //饿汉模式:线程安全,耗费资源。 public class HugerSingletonTest { //该对象的引用不可修改 private static final HugerSingletonTest ourInstance = new HugerSingletonTest(); public static HugerSingletonTest getInstance() {

Web3D在线仿真开发总结2019.8.16

被刻印的时光 ゝ 提交于 2019-11-27 12:47:09
1、父类必须完成空构造函数,否则子类无法实例化 2、ajax不走success https://blog.csdn.net/u013036274/article/details/78054515 最终问题得以解决:在 JQuery1.4 版本之后,对返回的 json 格式做了严格要求,如下图: 3、浏览器中的类名显示不一定准确,如果遇到类名中间有“ “的情况,只取前面的名称,如下: 获取该对象: $(“modal”) 而不是 $(“modal login_modal”) 4、如果要让ajax以json的方式解析返回的响应数据,那么要加上”json”参数 来源: https://blog.csdn.net/wangyihero8/article/details/99676808

子类调用父类方法

你说的曾经没有我的故事 提交于 2019-11-27 11:55:27
当有相同的属性或者方法是this子类表示调用自己的属性或者方法, super调用父类的属性或者方法。 当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法 1.方式一 子类调用父类的方法,包含2中形式的调用。一种形式是在类内部通过继承的方式调用父类的方法,另外一种形式是子类实例化后之后通过继承的方式来调用父类的方法。如下图所示: 注意一点,在子类内部通过继承的方式调用父类的属性时,必须要带上self位置参数(self只在实例化过程中和在实例调用属性时才能省略(self本来的含义就是指向实例自己));而实例在通过继承调用父类的属性或方法时,则不用传self参数,因为实例已经实例化了呀!!! 该部分的代码块如下:注意一点,在子类内部通过继承的方式调用父类的属性时,必须要带上self位置参数(self只在实例化过程中和在实例调用属性时才能省略(self本来的含义就是指向实例自己));而实例在通过继承调用父类的属性或方法时,则不用传self参数,因为实例已经实例化了呀!!! 该部分的代码块如下: class Person(): "人的类" def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex def eat(self): print("%s开始吃饭了

单例模式

不羁岁月 提交于 2019-11-27 10:49:11
Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。   单例模式有以下特点:   1、单例类只能有一个实例。   2、单例类必须自己创建自己的唯一实例。   3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。 在讲单例之前,要做一次基础知识的科普行动。大家都知道Java类加载器加载内容的顺序: 1、从上往下(Java的变量需要先声明才能使用) 2、静态后动态(对象实例化)(静态块和static关键字修饰在实例化以前分配内存空间) 3、先属性后方法(成员变量不能定义在方法中,只能定义在class下) 二、懒汉式单例(4种写法) 1.普通懒汉模式 package spring_singleton; /** * @author pypua * @date

自定义元类控制类的实例化行为(二)

时光毁灭记忆、已成空白 提交于 2019-11-27 10:45:16
# 单例模式:# 实现方式一:class Mysql: __instance=None # __instance=obj def __init__(self): self.host = '127.0.0.1' self.port = 3306 @classmethod def singleton(cls): if not cls.__instance: # 空值是真,执行下面代码 ;有值是假直接返回 obj = Mysql() cls.__instance = obj # __instance=obj return cls.__instance def conn(self): passobj1 = Mysql.singleton()obj2 = Mysql.singleton()obj3 = Mysql.singleton()print(obj1 is obj2) # Trueprint(obj1 is obj3) # Trueprint(obj1, obj2, obj3)'''执行结果:<__main__.Mysql object at 0x000001F87E050F98> <__main__.Mysql object at 0x000001F87E050F98> <__main__.Mysql object at 0x000001F87E050F98>'''# 实现方式二

设计模式----单例模式

不羁的心 提交于 2019-11-27 10:22:14
单例模式的实现有以下几种: 1.饿汉模式(线程安全,浪费资源),直接实例化,不是延迟加载 private static Singleton uniqueInstance = new Singleton();2.懒汉模式(线程不安全)延迟加载,节约资源;但是多线程的情况下,没办法确保单例。线程安全模式,双重校验锁先判断 uniqueInstance 是否已经被实例化,如果没有被实例化,那么才对实例化语句进行加锁。3.静态内部类,运用java加载机制,类加载的时候不会被加载,单调方法是才会被加载。缺点:会被反射破坏4.枚举实现5.序列化://序列化反序列化协议 private Object readResolve() { return INSTANCE; } 6.注册式单例: 来源: https://www.cnblogs.com/wakakCode/p/11359093.html

自定义元类控制类的实例化行为

浪尽此生 提交于 2019-11-27 10:12:06
# 知识储备: __call__ 方法class Foo: def __call__(self, *args, **kwargs): print(self) print(args) print(kwargs)obj = Foo()obj(1, 2, 3, a=1, b=2, c=3) # obj.__call__(obj,1, 2, 3, a=1, b=2, c=3)# 执行结果:'''<__main__.Foo object at 0x00000221C0280F98>(1, 2, 3){'a': 1, 'b': 2, 'c': 3}'''# 元类内部也应有一个__call__方法,会在调用Foo时触发执行# Foo(1,2,x=1) #Foo.__call__(Foo,1,2,x=1)class Mymeta(type): def __init__(self, class_name, class_bases, class_dic): if not class_name.istitle(): # class_name 首字母不是大写就报类型错误 raise TypeError('类型错误') if '__doc__' not in class_dic or not class_dic['__doc__'].strip(): raise TypeError('必需要有注释且不能为空