cls

手写迷你SpringMVC框架

淺唱寂寞╮ 提交于 2019-11-29 00:07:48
前言 学习如何使用Spring,SpringMVC是很快的,但是在往后使用的过程中难免会想探究一下框架背后的原理是什么,本文将通过讲解如何手写一个简单版的springMVC框架,直接从代码上看框架中请求分发,控制反转和依赖注入是如何实现的。 建议配合示例源码阅读,github地址如下: https://github.com/liuyj24/mini-spring 项目搭建 项目搭建可以参考github中的项目,先选好jar包管理工具,Maven和Gradle都行,本项目使用的是Gradle。 然后在项目下建两个模块,一个是framework,用于编写框架;另外一个是test,用于应用并测试框架(注意test模块要依赖framework模块)。 接着在framework模块下按照spring创建好beans,core,context,web等模块对应的包,完成后便可以进入框架的编写了。 请求分发 在讲请求分发之前先来梳理一下整个web模型: 首先用户在客户端发送一个请求到服务器,经操作系统的TCP/IP栈解析后会交到在某个端口监听的web服务器。 web服务器程序监听到请求后便会把请求分发给对应的程序进行处理。比如Tomcat就会将请求分发给对应的java程序(servlet)进行处理,web服务器本身是不进行请求处理的。 本项目的web服务器选择Tomcat

网页开关灯

做~自己de王妃 提交于 2019-11-28 19:47:20
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .cls { background-color: black; } </style> </head> <body class="cls"> <input type="button" value="开/关灯" id="btn"> <script type="text/javascript"> function my$(id) { return document.getElementById(id); } my$("btn").onclick=function(){ //获取body标签 document.body.className=document.body.className!="cls"?"cls":""; } </script> </body> </html> 来源: https://www.cnblogs.com/zhangDY/p/11424203.html

面向对象知识点总结

丶灬走出姿态 提交于 2019-11-28 18:42:44
1、谈谈你对面向对象的理解? 核心二字为:对象,具体体现是将数据和数据处理的程序封装到对象中 较面向过程而言:可拓展性好,相对面向过程而言,需要经代码一层层的抽离去达到高内聚低耦合的效果,复杂度较高。 2、Python面向对象中的继承有什么特点? 可以继承父类所有静态属性和普通方法,从而提高代码的重用率。 3、面向对象深度优先和广度优先是什么? 二者 是指 属性,方法查找时对父类的查找顺序 深度优先:一条线走到底,没找到答案的话,回头从另外一条路再继续走下去 广度优先:先走例其最近的路,没找到,再走下个最近的路 4、面向对象中super的作用? super()可以调用父类所有可以被继承的方法和对象属性,使用者是子类对象 super()本质上是 super(子类类名,子类对象) super().父类普通方法 super().__init__() super().func() super(当前类名,self).__init__() 等价于 super().__init__() 5、是否使用过functools中的函数?其作用是什么? 1)、 偏函数:from functools import partial 用于其他进制的字符串与十进制数据之间的转换 import functools def transform(params): foo = functools.partial(int

五种单例模式

送分小仙女□ 提交于 2019-11-28 18:41:15
1 使用模块 class Singleton(object): def foo(self): pass singleton = Singleton() 将上面的代码保存在文件 mysingleton.py 中,要使用时,直接在其他文件中导入此文件中的对象,这个对象即是单例模式的对象 2 使用装饰器 def Singleton(cls): _instance = {} def _singleton(*args, **kargs): if cls not in _instance: _instance[cls] = cls(*args, **kargs) return _instance[cls] return _singleton @Singleton class A(object): a = 1 def __init__(self, x=0): self.x = x a1 = A(2) a2 = A(3) 3 使用类 class Singleton(object): def __init__(self): pass @classmethod def instance(cls, *args, **kwargs): if not hasattr(Singleton, "_instance"): Singleton._instance = Singleton(*args, *

老男孩Day7作业:选课系统

无人久伴 提交于 2019-11-28 15:30:49
老男孩Day7作业:选课系统 1、作业需求: 角色:学校、学员、课程、讲师 1. 创建北京、上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3. 课程包含,周期,价格,通过学校创建课程 4. 通过学校创建班级, 班级关联课程、讲师 5. 创建学员时,选择学校,关联班级 5. 创建讲师角色时要关联学校, 6. 提供两个角色接口 7. 学员视图, 可以注册, 交学费, 选择班级, 8. 讲师视图, 讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 ,修改所管理的学员的成绩 9. 管理视图,创建讲师, 创建班级,创建课程 10. 上面的操作产生的数据都通过pickle序列化保存到文件里 2、流程图 3、目录结构 4、代码区 bin目录下的start.py程序执行文件 # -*- coding:utf-8 -*- # Author:D.Gray import os,sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) from core import main if __name__ == '__main__': start = main.Count()

Java反射复习

隐身守侯 提交于 2019-11-28 13:48:20
三种实例化对象: 1、Class<?> cls = Class.forName("java.util.Date") ; *** System.out.println(cls.getName()); 2、类.class 3、对象.getClass Class<?> cls = Class.forName("java.util.Date") ; Object obj = cls.newInstance() ; // 实例化对象,等价于 new java.util.Date() 等价于 Date date = new Date() class Main{ public static void main(String[] args) { System.out.println(new java.util.Date()==new java.util.Date()); //false } } 获得包名: Class<?> cls = CLS.class ; // 取得Class类对象 System.out.println(cls.getPackage().getName()); 获得父类接口: Class<?> cls = CLS.class ; // 取得Class类对象 System.out.println(cls.getSuperclass().getName()); //

细说元类

感情迁移 提交于 2019-11-28 10:20:48
基于python的宗旨:一切皆对象。 而对象都是由类实例化得到的 class OldboyTeacher(object): school = 'oldboy' def __init__(self,name): self.name = name def run(self): print('%s is running'%self.name) t1 = OldboyTeacher('jason') # 对象t1是由类OldboyTeacher实例化得到 那么类也是对象,它又是谁实例化得到的呢? # 分别查看对象t1和OldboyTeacher的类型 print(type(t1)) print(type(OldboyTeacher)) # 结果为: <class '__main__.OldboyTeacher'> <class 'type'> 结论1:元类就是产生类的类,默认情况下type就是所有类的元类 0 | 1 二、不依赖于class关键字创建类 根据第一个结论我们能理出两条对应关系   1.调用元类得到自定义的类   2.调用自定义的类得到自定义的类的对象 现在我们来看第一对关系,调用元类来得到自定义的类,都需要哪些参数(OldboyTeacher=type(...),括号内传什么?) 我们自定义一个类的时候都有哪些关键的组成部分:   1.类名   2.类的父类   3

单例模式

假如想象 提交于 2019-11-28 08:15:15
使用 __new__ 方法 class Singleton ( object ) : def __new__ ( cls , * args , ** kwargs ) : if not hasattr ( cls , '_instance' ) : bef = super ( Singleton , cls ) cls . _instance = bef . __new__ ( cls , * args , ** kwargs ) return cls . _instance class sClass ( Singleton ) : a = 1 共享属性 class Singleton ( object ) : _state = { } def __new__ ( cls , * args , ** kwargs ) : bef = super ( Singleton , cls ) . __new__ ( cls , * args , ** kwargs ) bef . __dict__ = cls . _state # 创建实例时把所有实例的`__dict__`指向同一个字典 return bef class sClass ( Singleton ) : a = 1 装饰器版本 def Singleton ( cls , * args , ** kwargs ) :

python实现单例模式

ぃ、小莉子 提交于 2019-11-28 07:26:34
class SingletonType(type): def __init__(self,*args,**kwargs): super(SingletonType,self).__init__(*args,**kwargs) def __call__(cls, *args, **kwargs): # 这里的cls,即Foo类 print('cls',cls) obj = cls.__new__(cls,*args, **kwargs) cls.__init__(obj,*args, **kwargs) # Foo.__init__(obj) return obj class Foo(metaclass=SingletonType): # 指定创建Foo的type为SingletonType def __init__(self,name): self.name = name def __new__(cls, *args, **kwargs): return object.__new__(cls) obj = Foo('xx') 来源: https://www.cnblogs.com/zhaogang0104/p/11938683.html

__new__,__call__和__Init__方法

孤人 提交于 2019-11-28 06:55:19
一、 type() 1、创建类的两种方式 方式一 class MyClass(object): def func(self,name): print(name) myc = MyClass() print(MyClass, type(MyClass)) print(myc, type(myc)) 我们创建了一个名为MyClass的类,并实例化了这个类,得到其对象myc 上面代码打印的结果为: <class '__main__.MyClass'> <class 'type'> <__main__.MyClass object at 0x0288F8F0> <class '__main__.MyClass'> type() 函数可以查看一个类型或变量的类型, MyClass 是一个class,它的类型就是 type ,而 myc 是一个实例,它的类型就是class MyClass 。 我们说class的定义是运行时动态创建的,而创建class的方法就是使用 type() 函数。 type() 函数既可以返回一个对象的类型,又可以创建出新的类型,比如,我们可以通过 type() 函数创建出 MyClass 类,而无需通过 Class MyClass(object)... 的定义: 方式二 动态创建类 type(类名, 父类的元组(针对继承的情况,可以为空),包含属性的字典(名称和值))